日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

leetcode之Insertion Sort List

發布時間:2023/12/20 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。