ReOrder List java实现
来源:互联网 发布:lgd官方淘宝店 编辑:程序博客网 时间:2024/06/05 06:27
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}
.
分析
本题思路如下:首先将题目所给单链表从中间分割为两个单链表,再将后半个单链表反向,最后合并两个单链表即可。
代码
public class ReorderList { class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } } public void reorderList(ListNode head) { if (head == null || head.next == null) { return; } // find the second half head ListNode fast = head.next; ListNode slow = head; while (fast != null && fast.next != null) { fast = fast.next.next; slow = slow.next; } // reverse the second half ListNode p = slow.next; slow.next = null; // cut the first half ListNode pPre = null; ListNode pSuf = p.next; while (p != null) { pSuf = p.next; p.next = pPre; pPre = p; p = pSuf; } // combine two halves ListNode l1 = head; ListNode l2 = pPre; while (l1 != null && l2 != null) { ListNode l1Next = l1.next; ListNode l2Next = l2.next; l1.next = l2; l2.next = l1Next; l1 = l1Next; l2 = l2Next; } } }
0 0
- ReOrder List java实现
- LeetCode:Reorder List C++与Java实现
- leetcode reorder-list(java实现)
- [Leetcode] Reorder List (Java)
- Reorder List Java
- Reorder List (Java)
- reorder-list java
- Reorder List leetcode java
- reorder-list Java code
- 143. Reorder List | Java最短代码实现
- LeetCode Reorder List Java版本
- [LeetCode] 143. Reorder List java
- leetcode: Reorder List 的Python实现
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- Reorder List
- OGNL(对象图导航语言)基础了解
- 新华网:房价涨幅放缓成趋势 楼市风向正在改变
- 我在路上最爱你
- java环境变量详解
- ubuntu13.04 搭建android开发环境 eclipse+adt+jdk
- ReOrder List java实现
- Java 内存泄漏
- OJ_1141
- android Ant 批量多渠道打包 总结!
- C/OOC/Python/Mail应用研究
- windows下查看端口占用情况!
- struts1(18)---nested标签库
- linux内核中的IS_ERR
- JavaScript特效的实现