Leetcode 147.对链表进行排序
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 147.对链表进行排序
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
對鏈表進行插入排序
對鏈表進行插入排序。
插入排序算法:
? ?
示例 1:
輸入: 4->2->1->3
輸出: 1->2->3->4
?
到了鏈表,我們發現一個問題,那就是鏈表不能從后往前遍歷,這就很尷尬了。我本來是嘗試找到一個需要移動的節點(即該節點的值比前驅節點的值小),從前往后遍歷,直到找到一個節點值比它大時插入到這個節點前面,然而實現了很久發現代碼又臭又長,關鍵是還總有測試用例不通過,最后還是放棄了。
看了答案發現思路應該是創建一個輔助的新鏈表,并且使用一個指針遍歷原鏈表,每次將原鏈表中的一個節點插入到新鏈表的合適位置(即該節點的值大于新鏈表上的節點的值,又小于后一節點的值)。最后將新鏈表的頭部返回即可。代碼如下,做了詳細的注釋,應該很容易看懂。
?
?
?
轉載于:https://www.cnblogs.com/kexinxin/p/10195970.html
總結
以上是生活随笔為你收集整理的Leetcode 147.对链表进行排序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 知识图谱基础知识之一——人人都能理解的知
- 下一篇: 分布式项目 cookie共享方案