Re: [閒聊] 每日LeetCode
19. Remove Nth Node From End of List
移除鏈結串列後面數來的第n個節點,題目保證n必定小於串列長度。
思路:
1.用快慢指針來求解
2.先讓快指針走n步,再來快慢指針一起走直到快指針為null
3.慢指針最後會停在要被刪除的元素之前,將他指向下下個元素
4.避免遇到要刪除的節點是頭節點,我們用一個dummy作為頭節點,快指針也改
成多走一步。
5.返回dummy.next
Java Code:
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode dummy = new ListNode(0);
ListNode slow = dummy, fast = dummy;
slow.next = head;
for(int i = 1; i <= n + 1; i++) {
fast = fast.next;
}
while(fast != null) {
slow = slow.next;
fast = fast.next;
}
slow.next = slow.next.next;
return dummy.next;
}
}
之前寫過了 當作複習
這題滿經典的
--
https://i.imgur.com/xDr11uL.jpg
![](https://i.imgur.com/xDr11uL.jpg)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.102.191 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1664330816.A.688.html
推
09/28 10:12,
1年前
, 1F
09/28 10:12, 1F
推
09/28 10:19,
1年前
, 2F
09/28 10:19, 2F
討論串 (同標題文章)