203.移除鏈表元素?
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):ac
用時:0.5h
思路:雙指針從前往后端姚,后面的指針找到了特定元素后闽颇,讓前面指針指向后面指針的next結點。為了循環(huán)處理的一致寄锐,需要在鏈表前面設置一個頭節(jié)點。
代碼:
圖1
707.設計鏈表??
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):沒ac
用時:1.5h
思路:考察鏈表的基本功。設置一個虛擬的頭結點橄仆,會是的操作簡單點剩膘。注意每一次增刪成功后,都要把鏈表長度加1或者減1盆顾。
代碼:
圖2
圖3
圖4
206.反轉鏈表
文檔和視頻講解:代碼隨想錄(programmercarl.com)
狀態(tài):雙指針ac怠褐,遞歸沒做出來
用時:1.5h
思路:第一個方法是雙指針,即從前往后您宪,兩個指針指向相鄰的兩個結點奈懒,并反轉。
? ? ? ? ? ?第二個方法宪巨,是遞歸磷杏。可以從前往后捏卓,也可以從后往前极祸。我遞歸的思路并沒有想到從前往后,一開始從后往前怠晴,即傳入函數的指針head遥金,之后的鏈表都已經反轉,具體的反轉處理實在遞歸函數后面蒜田。
我的代碼:
圖5 雙指針
圖6 遞歸(從后往前)
? ? 一定注意要把head->next賦值為null稿械,否則最后兩個結點會相互指向,導致輸出時無限循環(huán)冲粤。
卡哥代碼:
圖7 遞歸(從前往后)
? ? 注:具體的數據的處理放在遞歸之前還是之后會讓具體的執(zhí)行過程不同美莫。