Reorder List leetcode
来源:互联网 发布:淘宝店店铺介绍范文 编辑:程序博客网 时间:2024/06/04 01:29
Given a singly linked list L: L0→L1→…→Ln-1→Ln,
reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→…
You must do this in-place without altering the nodes' values.
For example,
Given {1,2,3,4}
, reorder it to {1,4,2,3}
.
/** * 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 == nullptr || head->next == nullptr) return; ListNode* fast = head; ListNode* slow = head; while(fast->next != nullptr && fast->next->next != nullptr) { slow = slow->next; fast = fast->next->next; } fast = slow->next; slow->next = nullptr; fast = reverse(fast); slow = head; ListNode* slowNext; ListNode* fastNext; while(fast != nullptr) { slowNext = slow->next; fastNext = fast->next; fast->next = slow->next; slow->next = fast; slow = slowNext; fast = fastNext; } } ListNode* reverse(ListNode* head) { if(head == nullptr || head->next == nullptr) return head; ListNode* helper = new ListNode(0); helper->next = head; ListNode* pre = helper; ListNode* last = head; ListNode* cur = last->next; while(cur != nullptr) { last->next = cur->next; cur->next = pre->next; pre->next = cur; cur = last->next; } return helper->next; }};
0 0
- [leetcode][list] Reorder List
- [leetcode][list] Reorder List
- Leetcode: Reorder List
- [LeetCode] Reorder List
- LeetCode题解:Reorder List
- Leetcode: Reorder List
- LeetCode:Reorder List
- leetcode之Reorder List
- Leetcode: Reorder List
- [LeetCode]Reorder List
- [LeetCode] Reorder List
- leetcode Reorder List
- LeetCode | Reorder List
- LeetCode Reorder List
- LeetCode 之 Reorder List
- Leetcode: Reorder List
- LeetCode OJ:Reorder List
- Reorder List (LeetCode)
- Android学习笔记三:第一个应用程序的扩充
- UIButton使用UIEdgeInsetsMake 图片 标题 位置 排版
- Hibernate4中单向多对一映射
- Android学习笔记四:基本视图组件:TextView
- python下常见的测试框架之二--doctest
- Reorder List leetcode
- Android活动Acitivity启动模式之standard
- Window下配置Objective C开发环境
- Android学习笔记五:基本视图组件:Button
- 进程间通信:使用file-mapping kernel object(文件映射内核对象)
- lua 5.1 的 module
- 圆圈中最后剩下的数字
- ExtJS入门到精通视频教程下载 ExtJS视频教程
- Android学习笔记六:基本视图组件:EditText