LeetCode92 Reverse Linked List II
来源:互联网 发布:unity3d 5.x 动画系统 编辑:程序博客网 时间:2024/06/03 21:16
Reverse a linked list from position m to n. Do it in-place and in one-pass.For example:
Given 1->2->3->4->5->NULL
, m = 2 and n = 4,
return 1->4->3->2->5->NULL
.
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
题目要求反转链表第m到第n的部分,主要思路是将整个链表分为3个部分[1,m-1] [m,n] [n+1, len],其中第一和第三个部分可能为空,这是主要要解决的问题。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode* reverseBetween(ListNode* head, int m, int n) { if(m==n) return head; ListNode* p = head; // 找到开始反转的位置 int i = 1; while(head){ if(i == m) break; head = head->next; i++; } // 获得将需要反转的部分进行翻转 ListNode *q = NULL, *next; while (head->next) { next = head->next; head->next = q; q = head; head = next; i++; if(i-1==n) break; } if(n!=i-1) // n等于链表长度时 特殊处理 head->next = q; if(n!=i-1 && m == 1) // 反转部分为整个链表时 直接返回翻转结果 return head; // 连接三个部分 if(m==1) p = q; ListNode *r = p; int j = 0; while(r->next){ if(j == m-2) break; r = r->next; j++; } if(n!=i-1) r->next = head; else if(m == 1) r->next = next; else{ r->next = q; while(r->next) r = r->next; r->next = next; } return p; }};
因为自己一直对指针的使用不是很熟练,在完成这道题的时候出现了各种各样的bug,但最后还是成功完成了!!
0 0
- Reverse Linked List II Leetcode92
- LeetCode92 Reverse Linked List II
- LeetCode92. Reverse Linked List II
- LeetCode92 Reverse Linked List II
- leetcode92~Reverse Linked List II
- leetcode92. Reverse Linked List II
- leetcode92. Reverse Linked List II
- LeetCode92. Reverse Linked List ii
- leetcode92. Reverse Linked List II
- leetcode92. Reverse Linked List II
- LeetCode92 Reverse Linked List II
- LeetCode92——Reverse Linked List II
- 算法作业HW10:Leetcode92 Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- Reverse Linked List II
- 支持向量机通俗导论(理解SVM的三层境界)
- 编程心得
- Autolayout屏幕适配库导入后报错解决
- c#调用Java的webservice出现身份验证失败的解决方案
- virtualbox中ubuntu和windows共享文件夹设置
- LeetCode92 Reverse Linked List II
- 以下的生产者消费者程序中,那个不会出现锁死,并且开销最少?
- 腾讯应用宝认领应用步骤
- 143. Reorder List
- java大概
- 对highcharts的总结(饼图、柱状图、折线图、曲线图)
- MySQL for Windows 解压缩版配置安装及my-default.ini说明
- nginx 反向代理 ,配置 含自定义header 和php fastcgi
- rails --查询数据表