leetCode No.147 Insertion Sort
来源:互联网 发布:成都知美术馆怎么去 编辑:程序博客网 时间:2024/06/08 15:45
题目
Sort a linked list using insertion sort.
标签:Linked List、Sort
相似问题: (M) Sort List
题意
在单链表这种数据结构上进行插入排序。
解题思路
插入排序就是将待排序的一串数字(可以是数组,链表等)分为有序区和无序区,每次都从无序区取出一个需要排序的数插入到有序区合适的位置。时间复杂度为O(n^2)。
在本题中要注意链表的指针的改变。
代码
class ListNode { int val; ListNode next; ListNode(int x) { val = x; } }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;//q指向当前指针的下一节点,即需要被插入排序的节点 p.next = q.next;//当前指针指向q的下一节点,即删除需要被插入排序的节点 r = root;//指向排序区的头结点 while (r.next.val <= q.val) {//找到第一个比q大的节点的前驱节点 r = r.next; } q.next = r.next;//插入这个节点 r.next = q; } } return root.next; }}
相关链接
原题
所有题解代码(github)
0 0
- leetCode No.147 Insertion Sort
- Leetcode NO.147 Insertion Sort List
- 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
- 【shader】动态天空球
- 斜45度Tiiled坐标计算
- Java编程基础-方法
- 401.Kth Smallest Number in Sorted Matrix-排序矩阵中的从小到大第k个数(中等题)
- 告诉你ListView的Adapter应该写在Activity外面还是里面
- leetCode No.147 Insertion Sort
- 同义词概述
- 巴西游戏如何做好本地化?
- 在win10平台下快速查找占用端口的服务
- linux中强大且常用命令:find、grep
- 汉诺塔——递归入门
- 深入理解HTTP协议
- C++並發練習 筆記(一)STL<future>中的packaged_task
- LaTeX section不带编号同时书签生效