[LeetCode] Reorder List
来源:互联网 发布:网络编程实用教程第3版 编辑:程序博客网 时间:2024/05/17 07:46
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}
.
class Solution {public: void reorderList(ListNode *head) { if(head == NULL || head -> next == NULL) return; ListNode *mid = getMid(head); ListNode *back = reverse(mid -> next); mid -> next = NULL; ListNode *cur = new ListNode(-1); while(head && back){ ListNode *tmpa = head -> next; head -> next = back; ListNode *tmpb= back ->next; back ->next = tmpa; head = tmpa; back = tmpb; } } ListNode *getMid(ListNode *head){ ListNode *p = head; ListNode *q = head; while(q -> next && q -> next ->next){ p = p -> next; q = q -> next ->next; } return p; } ListNode *reverse(ListNode *head){ if(head == NULL) return NULL; ListNode* p = head->next; head->next = NULL; while(p != NULL){ ListNode* tmp = p; p = p->next; tmp->next = head; head = tmp; } return head; }};
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)
- 第二章
- MFC获取临时文件夹的路径
- java中的数学计算函数
- C语言自增自减运算符
- Python 统计文章单词出现频率
- [LeetCode] Reorder List
- ECC 5.0,un-unicode系统,接收从外围unicode系统传过来的XML文件中出现乱码的解决方法
- wordpress不加载Google fonts的几种办法
- Linux——进程管理
- (贪心)HDU 1789 解题报告
- Linux TCP/UDP小例子
- EncodeDemo
- 传参和继承
- oracle用 pl/sql 可以连接,用cmd无法连接的解决方法