【快慢指针】19. 删除链表的倒数第 N 个结点

题目:
在这里插入图片描述
算法思想:
设置两个指针,一个快指针在前面,一个慢指针在后面,快指针提前走N步,然后两个指针同时走,这样的话,刚好快指针走到最后的时候,慢指针指向的是倒数第n个结点的前一个结点。

代码:

class Solution {public ListNode removeNthFromEnd(ListNode head, int n) {ListNode headNode = new ListNode(-1);headNode.next = head;ListNode firstNode = headNode; //快指针ListNode secondNode = headNode; // 慢指针for(int i = 0; i < n; i++) {firstNode = firstNode.next;}while(firstNode.next != null) {firstNode = firstNode.next;secondNode = secondNode.next;}System.out.println(firstNode.val);System.out.println(secondNode.val);secondNode.next = secondNode.next.next;return headNode.next;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部