Reverse Linked List II
2013-12-28 20:10
267 查看
问题:Reverse a linked list from position m to n. Do it in-place and in one-pass.
For example:
Given
4,
return
Note:
Given m, n satisfy the following condition:
1 ≤ m ≤ n ≤ length of list.
这个问题开始题目读错了,以为是互换m,n位置的节点,其实要求逆置m到n区间的节点。
这里还是设定了一个表头节点,这样在处理的时候就非常方便,不用特殊处理第一个结点。
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位置的节点,其实要求逆置m到n区间的节点。
class Solution { public: ListNode *reverseBetween(ListNode *head, int m, int n) { if(head == NULL || head->next == NULL || m == n) return head; ListNode *pseud_head = new ListNode(-1); pseud_head->next = head; int steps = 0; ListNode *pm, *pre_m, *pn, *pre_n; ListNode *travel = pseud_head; while (travel->next != NULL) { if(steps + 1 == m) { pre_m = travel; pm = travel->next; } if (steps + 1 == n) { pre_n = travel; pn = travel->next; break; } travel = travel->next; ++steps; } if(travel != NULL) { ListNode *temp = pm; ListNode *temp_next = pm; pre_m->next = pn->next; do { temp = temp_next; temp_next = temp->next; temp->next = pre_m->next; pre_m->next = temp; } while (temp != pn); } pm = pseud_head; pseud_head = pseud_head->next; delete pm; return pseud_head; } };
这里还是设定了一个表头节点,这样在处理的时候就非常方便,不用特殊处理第一个结点。
相关文章推荐
- Reverse Linked List II
- Reverse Linked List II -- leetcode
- LeetCode 60 Reverse Linked List II
- leetcode - Reverse Linked List II
- Reverse Linked List II
- Leetcode 92. Reverse Linked List II
- [LeetCode] Reverse Linked List II
- Leetcode:Reverse Linked List II 单链表区间范围内逆置
- 【leetcode】【92】Reverse Linked List II
- [LeetCode] Reverse Linked List II @ Python [提供自创的示意图 Figure illustration]
- 【LeetCode】Reverse Linked List II
- LeetCode: Reverse Linked List II [092]
- LeetCode - M - Reverse Linked List II
- reverse linked list II
- Reverse Linked List II && Add Binary
- LeetCode 92. Reverse Linked List II
- Reverse Linked List II
- 92. Reverse Linked List II
- leetcode Reverse Linked List II
- leetcode Reverse Linked List II -- 重点