LeetCode::Reorder List
来源:互联网 发布:看图编辑软件 编辑:程序博客网 时间:2024/05/16 14:17
https://oj.leetcode.com/problems/reorder-list/
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}
.
<pre name="code" class="cpp">class Solution {public: void reorderList(ListNode *head) { if (head == NULL || head->next == NULL || head->next->next == NULL) { return; } ListNode *slow = head; ListNode *fast = head; while (fast != NULL && fast->next != NULL) { fast = fast->next->next; slow = slow->next; } ListNode* mid = slow->next; slow->next = NULL; ListNode *secondHead = reverseList(mid); mergeList(head, secondHead); }private: ListNode *reverseList(ListNode *head) { ListNode *pCur = head; ListNode *pTemp = head->next; ListNode *pPrev = NULL; pCur->next = NULL; while (pTemp != NULL) { pPrev = pTemp; pTemp = pTemp->next; pPrev->next = pCur; pCur = pPrev; } return pCur; } void mergeList(ListNode *first, ListNode *second) { ListNode *newListCur = first; ListNode *firstCur = first->next; ListNode *secondCur = second; ListNode *firstNext = NULL; ListNode *secondNext = NULL; while (secondCur != NULL) { firstNext = firstCur->next; secondNext = secondCur->next; newListCur->next = secondCur; secondCur->next = firstCur; newListCur = firstCur; firstCur = firstNext; secondCur = secondNext; } }};
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)
- 在Eclipse中使用Axis2插件生成Web Service服务端/客户端
- hdu 4464 水
- 《c程序设计语言》读书笔记
- Spring3.x_Struts2.x_Hibernate3.x整合之用户管理例子笔记
- Topcoder SRM 636 div2 1000
- LeetCode::Reorder List
- ssh框架包的作用【转】
- 人脸检测-Haar分类器方法
- android - anim translate中 fromXDelta、toXDelta、fromYDelta、toXDelta属性
- poj1840
- Maven2的配置文件settings.xml
- Linux-Backup
- OC中description和SEL
- win7环境下visualsvn-server的搭建与使用(Eclipse)整合版