92. Reverse Linked List II
2017-08-20 00:13
155 查看
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
分析:
首先设置一个node节点,node->next=head;
再令一个pre节点遍历到m的前一个节点,如果m=2,那么pre就是第一个节点;
让cur为开始翻转的第一个节点
然后开始翻转
For example:
Given 1->2->3->4->5->NULL, m = 2 and n = 4,
return 1->4->3->2->5->NULL
分析:
首先设置一个node节点,node->next=head;
再令一个pre节点遍历到m的前一个节点,如果m=2,那么pre就是第一个节点;
让cur为开始翻转的第一个节点
然后开始翻转
/** * 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(!head) return NULL; ListNode *node=new ListNode(-1); node->next=head; ListNode *pre=node; for(int i=0;i<m-1;i++) pre=pre->next; ListNode *cur=pre->next; for(int i=0;i<n-m;i++) { ListNode *suc=cur->next; cur->next=suc->next; suc->next=pre->next; pre->next=suc; } return node->next; } };
相关文章推荐
- leetCode 92.Reverse Linked List II (反转链表II) 解题思路和方法
- LeetCode力扣之92. Reverse Linked List II
- LeetCode 92. Reverse Linked List II
- 【LeetCode】92. Reverse Linked List II
- 92. Reverse Linked List II
- [Leetcode] 92. Reverse Linked List II
- leetcode92. Reverse Linked List II
- leetcode 92. Reverse Linked List II
- Leetcode-92. Reverse Linked List II
- LeetCode - 92. Reverse Linked List II
- [LeetCode]92. Reverse Linked List II
- Leetcode 92. Reverse Linked List II
- Leetcode 92. Reverse Linked List II
- 92. Reverse Linked List II
- leetcode 92. Reverse Linked List II
- leetcode题解-92. Reverse Linked List II
- 92. Reverse Linked List II
- 【C++】【LeetCode】92. Reverse Linked List II
- [LeetCode]92. Reverse Linked List II
- 【LeetCode】92. Reverse Linked List II 解法及注释