Reorder List --LeetCode
来源:互联网 发布:魏延被谁杀 知乎 编辑:程序博客网 时间:2024/05/16 08: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}
.
核心在与双指针如何控制slow指针落在合适的位置,
如果需要落在中间偏左则需要从head之前的节点开始遍历;
如果需要落在中间偏右,则直接从head开始遍历。
/** * 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* slow=head; ListNode* fast=head; while(fast && fast->next){ slow=slow->next; fast=fast->next->next; } ListNode* h=slow->next; slow->next=NULL; stack<ListNode*> s; while(h){ s.push(h); h=h->next; } ListNode* p=head; while(!s.empty() && p){ ListNode* tmp=s.top(); s.pop(); tmp->next=p->next; p->next=tmp; p=p->next->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)
- linux性能评测工具2-Google perftools
- 7.31 Django学习第三章
- spark源码分析--Master和worker建立连接
- 弗洛伊德算法
- HDU - 2066 一个人的旅行
- Reorder List --LeetCode
- windows10安装过程以及使用感受
- Android如何让软键盘出现和消失
- 第73讲:Scala界面和事件处理编程进阶实战学习笔记
- 递归--小游戏
- Qt点击按钮打开图片
- Mysql之查询、where、常用函数、having
- 面试题37_两个链表的第一个公共结点
- HDU 2524--矩形A + B【推理 && 水题】