0
点赞
收藏
分享

微信扫一扫

LeetCode 19. 删除链表的倒数第N个节点

梯梯笔记 2022-08-03 阅读 76


思路

题目地址:https://leetcode-cn.com/problems/remove-nth-node-from-end-of-list/
思路:

  1. 遍历2次,第一次得出链表长度,第二次上length-n+1的节点
  2. 双指针,第一个指定先向前移动n次,然后第一个指针和第二个指针同时移动,当第一个指针到达链表的尾节点时,第二个指针到达倒数第n个节点

为了编码方便,在原先的链表上加一个哨兵节点,看代码把

代码

public class Solution {

public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode newHead = new ListNode(0);
newHead.next = head;
// 走在前面的指针
ListNode firstNode = newHead;
// 走在后面的指针
ListNode secondNode = newHead;
int start = 0;
while (start < n + 1) {
firstNode = firstNode.next;
start++;
}
while (firstNode != null) {
firstNode = firstNode.next;
secondNode = secondNode.next;
}
secondNode.next = secondNode.next.next;
return newHead.next;
}
}


举报

相关推荐

0 条评论