标签:nts null val while rev nod ted into inpu
Sort a linked list using insertion sort.
A graphical example of insertion sort. The partial sorted list (black) initially contains only the first element in the list.
With each iteration one element (red) is removed from the input data and inserted in-place into the sorted list
Algorithm of Insertion Sort:
Example 1:
Input: 4->2->1->3 Output: 1->2->3->4
Example 2:
Input: -1->5->3->4->0 Output: -1->0->3->4->5
time: O(n^2), space: O(1)
/** * 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) { return head; } ListNode dummy = new ListNode(0); ListNode prev = dummy; ListNode cur = head; while(cur != null) { ListNode next = cur.next; while(prev.next != null && prev.next.val < cur.val) { prev = prev.next; } cur.next = prev.next; prev.next = cur; prev = dummy; cur = next; } return dummy.next; } }
147. Insertion Sort List - Medium
标签:nts null val while rev nod ted into inpu
原文地址:https://www.cnblogs.com/fatttcat/p/10185456.html