[LeetCode] Reverse Linked List II
2013-01-24 19:23
411 查看
/** * 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) { // Start typing your C/C++ solution below // DO NOT write int main() function ListNode *phead = new ListNode(0); phead->next = head; ListNode *prev = phead; ListNode *curr = head; int i; for (i = 1; i < m; i++) { prev = curr; curr = curr->next; } ListNode *mp = prev; ListNode *np = curr; while (i <= n) { ListNode *next = curr->next; curr->next = prev; prev = curr; curr = next; i++; } mp->next = prev; np->next = curr; return phead->next; } };
Small Case: 0ms
Large Case: 8ms
Time: O(n)
Space: O(1)
设置一个指向头指针的指针对简化代码非常有益,可以省去很多特殊条件的判断
相关文章推荐
- leetcode92 Reverse Linked List II
- LeetCode 92: Reverse Linked List II
- LeetCode Reverse Linked List II
- LeetCode: Reverse Linked List II
- LeetCode解题报告—— Linked List Cycle II & Reverse Words in a String & Fraction to Recurring Decimal
- 【原创】Leetcode -- Reverse Linked List II -- 代码随笔(备忘)
- [leetcode]Reverse Linked List II
- LeetCode92之Reverse Linked ListII的 Java题解
- LeetCode(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
- [LeetCode92]Reverse Linked List II
- 【LeetCode】92. Reverse Linked List II
- leetcode92. Reverse Linked List II
- C实现 LeetCode->Reverse Linked List II (双指针大法)(单链表反转)
- [LeetCode] 92. Reverse Linked List II
- Reverse Linked List II -- LeetCode
- leetcode[92] Reverse Linked List II