leetcode No143. Reorder List
来源:互联网 发布:mac版百度云 编辑:程序博客网 时间:2024/05/16 10:41
Question:
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}
.
Algorithm:
用栈,这样栈的出栈顺序就是倒序,而遍历链表是正序
Accepted Code:
/** * 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==NULL || head->next==NULL) return; ListNode* pNode1=head; //L0 L1 L2 ... stack<ListNode*> s; int count=0; while(pNode1){ s.push(pNode1); pNode1=pNode1->next; count++; } pNode1=head; ListNode* pNode=head; count--; pNode1=pNode->next; while(count){ pNode->next=s.top(); s.pop(); pNode=pNode->next; count--; if(count==0) break; pNode->next=pNode1; pNode=pNode->next; pNode1=pNode->next; count--; } pNode->next=NULL; }};
0 0
- leetcode No143. Reorder List
- [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
- 贾扬清分享_深度学习框架caffe
- cocos2dx-3.12 android/ios监听键盘高度
- Android开源项目之(网络请求框架)
- Linux命令之"pwd"
- oracle行迁移和行链接优化
- leetcode No143. Reorder List
- C/C++堆和栈的区别
- QT实现不规则窗体和透明窗体
- window 7 下安装linux 后,无法启动
- 第十一讲项目4-完数字
- Unity继承MonoBehaviour的静态单例
- Problem 30 Digit fifth powers (暴力枚举)
- C++中new和malloc的区别
- 解析json存储到model中