Re: [閒聊] 每日leetcode已回收

看板Marginalman作者 (小惠我婆)時間1年前 (2024/03/04 00:06), 1年前編輯推噓2(200)
留言2則, 2人參與, 1年前最新討論串16/1548 (看更多)
白癡賽區讓我一盤小康->赤貧 來刷點P幣 ※ 引述《oin1104 (是oin的說)》之銘言: : 突然發現有點久沒紀錄= = : 今天每日是 : 19. remove Nth Node from end of list : 叫你刪除從後面數的第N個節點 : 解法: 先算總長度就蠻簡單的 但follow up要求用one pass 其實我也不確定怎樣叫one pass 要刪倒數第n個 就要找到倒數第n+1個 用2個pointer a b b先走n步後 ab再同時一步一步動 當b走到最後一個節點的時候 a就是倒數第n+1個了 struct ListNode* removeNthFromEnd(struct ListNode* head, int n){ struct ListNode *new_head = malloc(sizeof(struct ListNode)*1); struct ListNode *slow = new_head, *fast = new_head; int i; new_head->next = head; for(i=0; i<n; i++) fast = fast->next; while(fast->next){ fast = fast->next; slow = slow->next; } slow->next = slow->next->next; return new_head->next; } 之前寫過 結果今天看了10分鐘完全想不到... 真不知道我當初怎麼想到的 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.143.22.121 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1709481960.A.E41.html

03/04 00:08, 1年前 , 1F
這做法 很酷
03/04 00:08, 1F
※ 編輯: NCKUEECS (220.143.22.121 臺灣), 03/04/2024 00:12:45

03/04 12:36, 1年前 , 2F
大師
03/04 12:36, 2F
文章代碼(AID): #1bv9_ev1 (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1bv9_ev1 (Marginalman)