【LeetCode-面试算法经典-Java实现】【147-Insertion Sort List(链表插入排序)】
2015-08-20 06:33
836 查看
【147-Insertion Sort List(链表插入排序)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
Sort a linked list using insertion sort.题目大意
对一个单链表表进行插入排序解题思路
使用一个指针p指向未排好序的链表的第一个结点,在排序好的部分中找到找第一个大于等于q的前驱结点,将p对应的结点插入到正确位置,p重新指向未排好序的链表的第一个结点。直到链表完成排序好。代码实现
结点类算法实现类
public class Solution { public ListNode insertionSortList(ListNode head) { ListNode root = new ListNode(0); // 头结点 root.next = head; ListNode p = head; ListNode q; ListNode r; while (p != null && p.next != null) { if (p.val <= p.next.val) { p = p.next; }else { q = p.next; p.next = q.next; r = root; // 找第一个大于等于q.val的前驱结点,因为在root.next到p之间必定存在这样的结点 while (r.next.val <= q.val) { r = r.next; } q.next = r.next; r.next = q; } } return root.next; } }
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。特别说明
欢迎转载,转载请注明出处【/article/1324054.html】
相关文章推荐
- 一般程序员有以下几种发展路线
- 黑马程序员——java概述
- android面试常见问题总结
- 黑马程序员-------Java笔记--------编程基础
- 剑指Offer面试题:6.用两个栈实现队列
- 黑马程序员——OC的内存管理——MRC
- C#程序员经常用到的10个实用代码片段
- 9秒学院:程序员未来发展三大方向
- 怎样才能成为被人需要的IT男
- 老板会喜欢那种程序员
- 黑马程序员---学习笔记6:字符串
- 一个优秀的程序员是如何炼成的?(大神、小白通吃的干货,不信你
- 机器学习&数据挖掘笔记_16(常见面试之机器学习算法思想简单梳理)
- 【微软面试题01】二元查找树转换为双向链表(未完成)
- 剑指Offer面试题:5.重建二叉树
- 运维面试经验
- 常见面试之机器学习算法思想简单梳理
- XX宝面试题——css部分
- XX宝面试题——JS部分
- 毕业六年IT总结之二