LeetCode.147 Insertion Sort List
来源:互联网 发布:网络数据保险箱 编辑:程序博客网 时间:2024/06/05 16:54
题目:
Sort a linked list using insertion sort.
分析:
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { public ListNode insertionSortList(ListNode head) { //链表的插入排序 //每次将列表中的最小插前面(已经有序) if(head==null||head.next==null)return head; //链表对折,分两部分 //tail用于表示后半部分,start用于记数,temp临时存储(类似pre) ListNode tail=head,start=head,temp=null; while(start!=null&&start.next!=null){ temp=tail; tail=tail.next; start=start.next.next;//比tail快一倍速度,正好将链表对折 } //递归实现后半部分 ListNode l2=insertionSortList(tail); //temp正好为tail的前一个,断链 temp.next=null; //递归实现前半部分 ListNode l1=insertionSortList(head); ListNode dummy=new ListNode(0); ListNode cur=dummy; //将前半部分和后半部分比较 while(l1!=null&&l2!=null){ if(l1.val<l2.val){ //插入cur cur.next=l1; l1=l1.next; }else{ cur.next=l2; l2=l2.next; } cur=cur.next; } //以防l1或l2还有节点 if(l1!=null) cur.next=l1; if(l2!=null) cur.next=l2; return dummy.next; }}
阅读全文
0 0
- LeetCode(147) Insertion Sort List
- LeetCode: Insertion Sort List [147]
- LeetCode 147 Insertion Sort List
- [leetcode 147] Insertion Sort List
- LeetCode 147 Insertion Sort List
- LeetCode 147 Insertion Sort List
- [leetcode 147]Insertion Sort List
- leetcode-147 Insertion Sort List
- [LeetCode 147]Insertion Sort List
- Leetcode[147]-Insertion Sort List
- Insertion Sort List - LeetCode 147
- leetcode[147]:Insertion Sort List
- LeetCode(147) Insertion Sort List
- leetcode 147: Insertion Sort List
- [Leetcode]#147 Insertion Sort List
- leetCode #147 Insertion Sort List
- LeetCode 147 Insertion Sort List
- LeetCode 147:Insertion Sort List
- 哈夫曼树
- 贝叶斯新闻分类demo(Python)
- 最全Pycharm教程(22)——Pycharm编辑器功能之窗口选项卡管理
- 硬币面值方案
- MongoDB完全教程
- LeetCode.147 Insertion Sort List
- usaco垃圾陷阱解题报告
- 2017京东校招在线编程题——集合
- 二叉树
- C# Winform 跨线程更新UI控件常用方法汇总
- 项目2
- VMvare学习3_Win7解决“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”的问题
- oracle10g在win10上的安装
- 深度优先遍历(DFS)和广度优先遍历(BFS)