使用插入排序演算法對列表進行排序——Leetcode系列(五)
阿新 • • 發佈:2019-02-02
Sort a linked list using insertion sort.
My Answer:
<span style="font-size:14px;">/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */ public class Solution { public ListNode insertionSortList(ListNode head) { if(head == null){ return head; } ListNode pivot = head.next; ListNode newHead = head; newHead.next = null; while(pivot != null){ ListNode newPivot = newHead; ListNode pre = newPivot; while(newPivot != null){ if(pivot.val <= newPivot.val){ ListNode temp = pivot.next; if(newHead == newPivot){ pivot.next = newHead; newHead = pivot; }else{ pivot.next = pre.next; pre.next = pivot; } pivot = temp; break; } pre = newPivot; newPivot = newPivot.next; } if(newPivot == null){ pre.next = pivot; pivot = pivot.next; pre.next.next = null; } } return newHead; } }</span>