LeetCode: Reverse Linked List II
来源:互联网 发布:哈佛 歧视 知乎 编辑:程序博客网 时间:2024/05/17 14:26
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.
/** * 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; int index = 1; ListNode *pre = NULL, *cur = head, *start = NULL, *next = NULL,*tail = NULL; while(index != m && cur != NULL) { start = cur; cur = cur->next; index++; } tail = cur; while(cur != NULL && index <= n) { index++; next = cur->next; cur->next = pre; pre = cur; cur = next; } tail->next = cur; if(start != NULL) start->next = pre; else return pre; return head; }};
Round 2:
class Solution {public: ListNode *reverseBetween(ListNode *head, int m, int n) { if(m == n) return head; ListNode *pre = NULL, *cur = head, *front = NULL, *prefront = NULL; int count = 1; while(cur != NULL) { if(count >= m && count <= n) { if(count == m) { prefront = pre; front = cur; } else if(count == n) { if(m == 1) head = cur; else prefront->next = cur; front->next = cur->next; } ListNode *temp = cur->next; cur->next = pre; pre = cur; cur = temp; count++; } else { pre = cur; cur = cur->next; count++; } } return head; }};
0 0
- LeetCode[Linked List]: Reverse Linked List II
- LeetCode: Reverse Linked List II
- LeetCode: Reverse Linked List II
- [LeetCode] Reverse Linked List II
- [Leetcode] Reverse Linked List II
- [LeetCode]Reverse Linked List II
- Leetcode: Reverse Linked List II
- [Leetcode]Reverse Linked List II
- [leetcode]Reverse Linked List II
- LeetCode-Reverse Linked List II
- LeetCode Reverse Linked List II
- [leetcode] Reverse Linked List II
- LeetCode - Reverse Linked List II
- [LeetCode] Reverse Linked List II
- LeetCode | Reverse Linked List II
- 【leetcode】Reverse Linked List II
- Leetcode: Reverse Linked List II
- leetcode Reverse Linked List II
- CSS样式覆盖规则
- memset函数详细说明
- No such file or directory (/Users/appleapple/Library/Developer/Xcode/Derived
- 使用AsyncHttpClient下载文件到SD卡上
- hook sys_getdents64隐藏文件
- LeetCode: Reverse Linked List II
- PHP PDO函数库详解
- strus2和hibernate,实现ajax 实现页面无刷新,思路整理
- MFC创建分割视图
- ASIHttpRequest:创建队列、下载请求、断点续传、解压缩
- android--jenkins+gradle+android自动化构建apk步骤
- VS下面运行release版本可以正常运行而直接执行exe文件会出现问题
- VS2010 调试C++项目 fatal error LNK1123 错误解决办法
- 音视频对讲SDK让游戏嗨起来