Re: [闲聊] 每日LeetCode

楼主: Rushia (みけねこ的鼻屎)   2022-09-28 10:06:53
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;
}
}
之前写过了 当作复习
这题满经典的
作者: Ericz7000 (Ericz7000nolan)   2022-09-28 10:12:00
我每天都看你的code打手枪
作者: sustainer123 (caster)   2022-09-28 10:19:00
大师

Links booklink

Contact Us: admin [ a t ] ucptt.com