Sort a linked list using insertion sort.
阿新 • • 發佈:2019-02-17
思路:用一個新連結串列來執行插入排序,將新的節點插入到正確的位置;
程式碼:
public ListNode insertionSortList(ListNode head){ if (head==null||head.next==null)return head; ListNode temp=new ListNode(Integer.MIN_VALUE); ListNode now=temp; ListNode cur=head; while (cur!=null){ now=temp;//每次都從第一個節點開始比較 ListNode next=cur.next;//選取要排序的連結串列的下一個節點 while (now.next!=null&&now.next.val<cur.val){//判斷要選取插入的位置 now=now.next; } cur.next=now.next;//插入節點 now.next=cur;//插入節點 cur=next; } return temp.next;//摒棄第一個自己new的節點 }