我一直認為做任何事情瑰枫,無論是做一個項目, 讀一本書,學習某個知識點, 都是需要總結(jié)的颜矿。 總結(jié)意味著對整個過程做一次全面的梳理和反省, 這樣才能走得更遠嫉晶。? 做完這些總結(jié)后,? 想忘掉這些知識都很困難田篇。對于leetcode題目替废, 對于每一類題目做一個總結(jié), 總結(jié)的內(nèi)容主要包括 題目分類泊柬, 做題心得椎镣, 做題過程中采過的坑。
先從題目類型入手
鏈表元素的調(diào)整
此類型最經(jīng)典的題目就是鏈表的反轉(zhuǎn)兽赁, 61? Rotate List
基于此題目可以做很多變化
相鄰的兩個元素為一組状答,對每組做反轉(zhuǎn)冷守,24 Swap Nodes in Pairs
相鄰的k個元素為一組,對每組做反轉(zhuǎn)惊科,25 Reverse Nodes in k-Group
對指定連續(xù)元素做反轉(zhuǎn)拍摇, 92 Reverse Linked List II
此類別相關(guān)的題目:
143 Reorder List
86 Partition List, 快速排序的基本思想之一馆截,這里只是要求基于鏈表實現(xiàn)充活。?
對于此類題目,基本上都可以用遞歸來實現(xiàn)蜡娶, 遞歸實現(xiàn)非常簡單和優(yōu)雅混卵, 遞歸函數(shù)的返回值基本都為鏈表頭 和 鏈表尾元素(用于鏈表的連接)。
鏈表合并
鏈表的合并也是合并排序的基礎(chǔ)窖张, 最簡單的是2個已排序鏈表的合并幕随,可以擴展到3個鏈表的合并和k個鏈表的合并。k個鏈表的實現(xiàn)可以基于最小堆實現(xiàn)宿接, 降低時間復雜度赘淮。
21 Merge Two Sorted Lists
23 Merge k Sorted Lists
148 Sort List, 這一題可以用歸并排序完成澄阳, 會用到?Merge Two Sorted Lists
會持續(xù)的補充拥知。。碎赢。低剔。?