JeffTeng
JeffTeng

機器學習初學者跨領域的機械人

LeetCode(3) - Linked List - eazy(1~10)鎖住跳過

第一題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去掉前面的


CC BY-NC-ND 2.0 版权声明

喜欢我的文章吗?
别忘了给点支持与赞赏,让我知道创作的路上有你陪伴。

加载中…

发布评论