Leetcode 143. Reorder List
来源:互联网 发布:淘宝购物车点不开 编辑:程序博客网 时间:2024/06/06 13:21
题目:
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}
.
思路:1:单向链表不好随机读取,所以把它装入一个vector<ListNode*>,i,j分别指向头和尾,每次 j 连到 i 后面,然后 i ++;同理 j 连到变换后的 i 后面,然后 j--;就像画一个半径不断缩小的圆一样,最后把最后一个节点指向NULL就行。需要注意的是:最后一个节点是从前 i 到 j 的还是 j 到 i 的,最后统一把s[i]->next=NULl就行。
class Solution {public: void reorderList(ListNode* head) { if(head==NULL) return; vector<ListNode*> s; ListNode* h=head; while(h!=NULL) { s.push_back(h); h=h->next; } int i=0,j=s.size()-1; while(i!=j) { s[i++]->next=s[j]; if(i==j) { i--; break; } s[j--]->next=s[i]; } s[j]->next=NULL; }};2.通过快慢指针找到链表中点,分为两半,reserve后面半段链表,最后合并两个链表就行,快慢指针用的不熟,没想到。
阅读全文
0 0
- [LeetCode]143.Reorder List
- LeetCode 143. Reorder List
- [leetcode] 143.Reorder List
- leetcode 143. Reorder List
- 143. Reorder List LeetCode
- LeetCode 143. Reorder List
- LeetCode 143. Reorder List
- LeetCode 143. Reorder List
- LeetCode *** 143. Reorder List
- [Leetcode] 143. Reorder List
- leetcode.143. Reorder List
- LeetCode 143. Reorder List
- LeetCode-143.Reorder List
- LeetCode - 143. Reorder List
- LeetCode 143. Reorder List
- leetcode 143. Reorder List
- Leetcode 143. Reorder List
- [LeetCode] 143. Reorder List
- Zookeeper实例原生API--删除节点
- 自定义属性
- 70. Climbing Stairs
- Mybatis基础整理
- Converted JNDI name [java:comp/env/spring.liveBeansView.mbeanDomain] not found
- Leetcode 143. Reorder List
- 游戏编程中的人工智能 五 (Python改编)
- Thinkphp5学习(19)关联:一对多
- 一分钟了解“过去完成时”
- mysql更改端口
- java 反射
- C++算法学习——经典的抽象设计——堆—栈模式
- Java内部抛出异常外部不能catch问题分析
- 内部盒子居中