第一題Convert Binary Number in a Linked List to Integer#1290
把2進制換成10進制
將前面算完的值*2+node.val就可以了第二題 Middle of the Linked List 876#
slow一次跳1格,fast一次跳2格若fast and fast.next = None則終止,本次fast跳到最後一個值fast.next會是None則跳出代表node數為奇數,若本次跳到fast = None直接跳出 代表node數為偶數,而slow也已經跳了所以會移到後面的noede第三題Reverse Linked List#206
$$$$$$$$$$$$
特殊題我是背起來了(寫完背起來),第四題 Delete Node in a Linked List#237
直接給你值了只要設定現在node.val= node.next.val
然後下個node跳過第五題 Merge Two Sorted Lists#21
融合成一個新的
看完自己寫還是有些問題
直接將值比較後加到第三個裡面,l1和l2都有則比較沒有則直接加,前面有比過較小的才加入,所以剩的一定比較大
第六題 Remove Duplicates from Sorted List#83
自己嘗試
如果還有下個node且node.next.val == node.val則跳過,若沒有繼續往後推檢查
第七題 Linked List Cycle#141
將掃過變成scanded若獨到scanded則ture否則false
第八題 Palindrome Linked List #234
我是使用reverse比較node但是好像,同值也沒辦法,若node記憶體不一樣則不會足==
放進list裡直接比
第九題 Intersection of Two Linked Lists #160
可以過簡單的,若node太大會runtime error 因為兩個while
將每個nodeA 存到list內,nodeA = nodeA.next持續後推,nodeB只要對照是否在list內若沒有就nodeB = nodeB.next,
第十題 Remove Linked List Elements#203
自己嘗試,寫3個以上的問題由於不能刪除第一個留到最後處理
先處理,如果.next和.next.next有值,讀取.next如果等於val tem.next=tem.next.next跳過 tem.next
通過上方的while {不一定,非val,......,非val,不一定,None},除了第一個和最後一個其他都能排除val了
處理上面-1的node,現在tem的狀態是{非val,不一定,None}
直接將,tem.next.val ==val tem.next =None,可以處理最後一個,
最後處理第一個如果head.val == val return head.next 解決
問題:若遇到{1,1,1,None} 通過第一個 head = {1,1,None}
但是tem是{1,None}會有問題
看完解答後自己打
GEㄐ
直接以head.val去比對往後推如果相等就pass若不相等加上ListNode的object,最後return ans.next去掉前面的