leetcode 日经贴,Cpp code -Reorder List
2015-04-20 18:23
393 查看
Reorder List
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: void reorderList(ListNode *head) { if (!head || !head->next) { return ; } ListNode *l1 = head, *l2 = head, *pre = head; while (l1 && l2) { pre = l1; l1 = l1->next; if (l2->next) { l2 = l2->next->next; } else { l2 = NULL; } } l2 = pre->next; pre->next = NULL; //reverse l2 pre = l2->next; l2->next = NULL; while (pre) { ListNode *next = pre->next; pre->next = l2; l2 = pre; pre = next; } //merge l1 = head->next; pre = head; while (l1 || l2) { if (l2) { pre->next = l2; pre = l2; l2 = l2->next; } if (l1) { pre->next = l1; pre = l1; l1 = l1->next; } } } };
相关文章推荐
- Leetcode#143 Reorder List
- LeetCode(143) Reorder List
- leetcode 日经贴,Cpp code -Reverse Linked List II
- leetcode-Reorder List
- Reorder List @LeetCode
- [LeetCode] Reorder List
- LeetCode Reorder List
- 【LEETCODE】143- Reorder List [Python]
- [LeetCode] Reorder List
- leetcode--Reorder List
- [LeetCode] Reorder List
- LeetCode--Reorder List
- [LeetCode]Reorder List
- LeetCode-Reorder List-链表重排序-链表和栈的应用
- leetcode 日经贴,Cpp code -Binary Tree Inorder Traversal
- Reorder List LeetCode
- leetcode 之Reorder List(25)
- LeetCode: Reorder List
- leetcode 146: Reorder List
- LeetCode | Reorder List(链表重新排序)