【Leetcode】147. Insertion Sort List
2018-02-27 12:04
330 查看
Question:
Sort a linked list using insertion sort.
Tips:
使用插入排序,对一个链表进行排序。
思路:
新建一个头结点newHead,设置一个pre指针,指向newHead。
cur指针,指向原来的头结点head。
当pre.next的值大于cur的值,就将cur插入到pre之后,否则pre指针后移。
插入一个值之后再将pre指向newHead。
代码:
Sort a linked list using insertion sort.
Tips:
使用插入排序,对一个链表进行排序。
思路:
新建一个头结点newHead,设置一个pre指针,指向newHead。
cur指针,指向原来的头结点head。
当pre.next的值大于cur的值,就将cur插入到pre之后,否则pre指针后移。
插入一个值之后再将pre指向newHead。
代码:
public ListNode insertionSortList(ListNode head) { if(head==null ||head.next==null) return head; //新的头结点 ListNode newHead= new ListNode(-1); ListNode pre=newHead; ListNode cur=head; ListNode next=null; while(cur!=null){ next=cur.next; //pre的next值小于cur的值,pre指针后移。即找到cur应该插入的位置。 while(pre.next!=null && pre.next.val<cur.val){ pre=pre.next; } //将cur插到pre与pre.next之间 cur.next=pre.next; pre.next=cur; cur=next; pre=newHead; } return newHead.next; }
相关文章推荐
- LeetCode 147. Insertion Sort List
- [leetcode]147. Insertion Sort List
- [leetcode] 147. Insertion Sort List 解题报告
- leetcode题解-链表排序算法 147. Insertion Sort List && 148 . Sort List
- Leetcode-147. Insertion Sort List
- leetcode147. Insertion Sort List
- leetcode之147. Insertion Sort List(C++解法)
- 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 (JAVA)链表插入排序
- leetcode 147. Insertion Sort List (Python版)
- Leetcode 147. Insertion Sort List
- LeetCode 147. Insertion Sort List
- [LeetCode] 147. Insertion Sort List
- LeetCode 147. Insertion Sort List
- leetcode_效率题解_[python/C++]_147. Insertion Sort List(链表插入排序)
- Leetcode 147. Insertion Sort List