leetcode之Insertion Sort List
生活随笔
收集整理的這篇文章主要介紹了
leetcode之Insertion Sort List
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Sort a linked list using insertion sort.
這道題是用鏈表做插入排序。雖然之前數據結構中學習了鏈表的插入刪除等,但那些都是最簡單的基本操作,只是給出一個節點,直接給出插入位置。
首先,插入排序的思想是,每次將一個元素插入到前面已排序的有序的鏈表中,因此首先要找到需要插入的元素,如果鏈表的鏈接順序是按照生序排列的話直接continue
當找到要插入的元素時,即第一個使得無序的元素。首先應該記錄下當前元素的位置,以及該元素之前的位置。
其次開始從頭遍歷已排序的前面鏈表,直到找到要插入的位置
最后再用之前學習過的插入的基本操作。
整個題目思路相對來說比較清晰,只是一定要記住插入時幾點next的順序。
有一點不明白的地方是為什么要返回newHead.next?
下面附上源碼
public ListNode insertionSortList(ListNode head) {if(head==null||head.next==null){return head;}ListNode newHead = new ListNode(-1);newHead.next = head;ListNode cur = head;ListNode post = head.next;while(post!=null){if(post.val>cur.val){cur = cur.next;post = post.next;}else{ListNode insertCur = newHead;ListNode insertPost = newHead.next;while(insertPost.val<post.val){insertCur = insertCur.next;insertPost = insertPost.next;}cur.next = post.next;post.next = insertPost;insertCur.next = post;post = cur.next;}}return newHead.next;}
?
轉載于:https://www.cnblogs.com/gracyandjohn/p/4422144.html
總結
以上是生活随笔為你收集整理的leetcode之Insertion Sort List的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DRBD的安装与配置
- 下一篇: OpenTLD相关资料