由206 反轉鍊錶反映的細節問題

2021-10-22 05:40:11 字數 780 閱讀 8468

206. 反轉鍊錶

這道題並不是很難,這裡只闡釋再利用遞迴完成時的乙個細節問題。

version

class

solution

}

看起來並沒有什麼問題,再提交時,卻報了空指標異常錯誤,思考後,發現是少考慮了head=null的情況,進行改進

class

solution

}

新增了head==null的情況,卻還是產生了錯誤,且同樣的是空指標異常,思考後,發現是if語句的編寫順序產生了問題,

if(head.next==null||head==null) return head;這一句**看似考慮了head為空的情況,但由於head==null寫在後面,在判斷時,還是會先執行head.next==null的判斷,當head為空時,執行head.next判斷,產生異常,結束程式執行。

class

solution

}

下面是迭代解法:

class

solution

return pre;

}}

206 反轉鍊錶

任務描述 思路 遇到問題 修改 迴圈前判斷傳入引數是否為空 迭代時沒有考慮l3.next none的情況 實現 definition for singly linked list.class listnode def init self,x self.val x self.next none cla...

206 反轉鍊錶

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 迭代就不說了,儲存當前節點的前繼節點迴圈改變指標指向就行。我自己先寫了個遞迴的,但看了題解的遞迴,一比就比下去了。class solution def reverselist self,head listn...

206 反轉鍊錶

題目 反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null 思路 首先,我們建立兩個新的空節點 prev 和 newhead 我們原來的第乙個節點的下乙個節點指向prev,然後再讓prev 指向第乙個節點,這樣就完成了第乙個節點的逆置,以此類推就可以翻轉這個鍊...