Leetcode#92 Reverse Linked List II
2015-01-29 14:00
351 查看
原题地址
第一步,找到将要翻转的位置,记录翻转部分前一个节点(prev)
第二步,翻转,记录翻转完成后这部分的首(reverseHead)和尾(reverseTail),以及翻转部分之后的一个节点(post)
第三部,将prev、reverseHead、reverseTail、post连接起来
代码:
第一步,找到将要翻转的位置,记录翻转部分前一个节点(prev)
第二步,翻转,记录翻转完成后这部分的首(reverseHead)和尾(reverseTail),以及翻转部分之后的一个节点(post)
第三部,将prev、reverseHead、reverseTail、post连接起来
代码:
ListNode *reverseBetween(ListNode *head, int m, int n) { ListNode *node = head; ListNode *prev = NULL; ListNode *post = NULL; ListNode *reverseHead = NULL; ListNode *reverseTail = NULL; int count = 1; if (!head) return NULL; prev = NULL; while (node && count < m ) { prev = node; node = node->next; count++; } if (!node) return head; reverseTail = node; post = node->next; while (post && count < n) { ListNode *postNext = post->next; post->next = node; node = post; post = postNext; count++; } reverseHead = node; reverseTail->next = post; if (!prev) return reverseHead; else { prev->next = reverseHead; return head; } }
相关文章推荐
- (LeetCode 92)Reverse Linked List II
- 【leetcode】【单链表】【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(c++)
- LeetCode(92): Reverse Linked List II (C++)
- LeetCode(92) Reverse Linked List II
- [leetcode 92]Reverse Linked List II
- Reverse Linked List II Leetcode92
- leetcode[92]Reverse Linked List II
- LeetCode(92) Reverse Linked List II
- [LeetCode-92] Reverse Linked List II(反转指定区间链表)
- 【leetcode】【92】Reverse Linked List II
- Reverse Linked List II - LeetCode 92
- LeetCode92之Reverse Linked ListII的 Java题解
- 【LEETCODE】92-Reverse Linked List II
- LeetCode 92: Reverse Linked List II