LeetCode.143 Reorder List
来源:互联网 发布:淘宝上买的轮毂可靠吗 编辑:程序博客网 时间:2024/05/16 10:25
题目:
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}
.
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public void reorderList(ListNode head) { //按照给定规则输出链表 //思想:将链表对半,后半部分逆转,之后交叉拼接 if(head==null||head.next==null) return; ListNode fast=head,slow=head,pre=null; //对折 while(fast!=null&&fast.next!=null){ pre=slow; slow=slow.next; fast=fast.next.next; } //断链 if(pre!=null){ pre.next=null; } ListNode temp=null; //若存在后半部分 //将后半部分逆转(slow!=head表示后半部分存在) while(slow!=null&&slow!=head){ ListNode next=slow.next; slow.next=temp; temp=slow; slow=next; } //赋值 slow=temp; //将前半部分和后半部分合并 ListNode dummy=new ListNode(0); ListNode cur=dummy; while(head!=null&&slow!=null){ cur.next=head; head=head.next; cur=cur.next; cur.next=slow; slow=slow.next; cur=cur.next; } if(head!=null) cur.next=head; if(slow!=null) cur.next=slow; //返回结果 head=dummy.next; }}
阅读全文
0 0
- LeetCode(143)Reorder List
- LeetCode 143 Reorder List
- LeetCode: Reorder List [143]
- [leetcode 143] Reorder List
- [LeetCode 143]Reorder List
- leetcode || 143、Reorder List
- [leetcode] #143 Reorder List
- Reorder List - LeetCode 143
- Leetcode[143]-Reorder List
- 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-Reorder List-143
- Leetcode Reorder List 143
- [Leetcode] #143 Reorder List
- socketserver的简单使用
- Laravel 5.5设置跨域访问
- 数据库——Oracle中常见的日期类型及日期函数
- spring mvc项目从简入奢全过程记录(二):最简明的MVC
- Hadoop/Spark推荐系统(四)——推荐链接
- LeetCode.143 Reorder List
- Elimination Game问题及解法
- 【实战】2-4Linux上JDK,Tomcat,Maven安装配置(centOS,阿里云)
- python解方程
- html5学习笔记2 html简介
- Unable to load image ntoskrnl.exe的问题
- 类比C++ 学习Python的class
- WEB_01_HTML概述
- Monkeyrunner--自动化测试工具