Re: [閒聊] 每日LeetCode

看板Marginalman作者 (麵包屌)時間1年前 (2022/09/28 19:00), 編輯推噓3(302)
留言5則, 5人參與, 1年前最新討論串15/719 (看更多)
※ 引述《Rushia (みけねこ的鼻屎)》之銘言: : 19. Remove Nth Node From End of List : 移除鏈結串列後面數來的第n個節點,題目保證n必定小於串列長度。 : 思路: : 1.用快慢指針來求解 : 2.先讓快指針走n步,再來快慢指針一起走直到快指針為null : 3.慢指針最後會停在要被刪除的元素之前,將他指向下下個元素 : 4.避免遇到要刪除的節點是頭節點,我們用一個dummy作為頭節點,快指針也改 : 成多走一步。 : 5.返回dummy.next Python code: class Solution(object): def removeNthFromEnd(self, head, n): prev = ListNode() prev.next = head curr = prev dele = prev for i in range(n): curr = curr.next while curr.next != None: curr = curr.next dele = dele.next dele.next = dele.next.next return prev.next 兩年前的code 認不出來是我寫的== 中間可以多加個判斷 如果移完 fast 發現 fast == Null 就代表要刪掉的是 head 這時候直接回傳 head.next 就可以 這樣就不用 dummy head 了 像這樣 class Solution(object): def removeNthFromEnd(self, head, n): fast = slow = head for i in range(n): fast = fast.next if not fast: return head.next while fast.next: fast = fast.next slow = slow.next slow.next = slow.next.next return head 應該有比較漂亮 -- 蛤? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.251.233.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1664362829.A.6C4.html

09/28 19:02, 1年前 , 1F
大師
09/28 19:02, 1F

09/28 19:03, 1年前 , 2F
好扯 只剩我不會寫py
09/28 19:03, 2F

09/28 19:05, 1年前 , 3F
喔喔喔喔喔
09/28 19:05, 3F

09/28 19:09, 1年前 , 4F
但我不會拍松
09/28 19:09, 4F

09/28 19:25, 1年前 , 5F
我也不會 我只是刷題用py==
09/28 19:25, 5F
文章代碼(AID): #1ZD2bDR4 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1ZD2bDR4 (Marginalman)