赞
踩
题目描述:
给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。
给定一个链表: 1->2->3->4->5, 和 n = 2.
当删除了倒数第二个节点后,链表变为 1->2->3->5.
解题步骤:
该题既要找打倒数第n个节点,又要删除该节点,采用快慢指针法。
(1)快慢指针都指向head
(2)快指针向前移动n-1个节点,如果快指针出现null,说明n大于链表长度,返回null
(3)快慢指针同时移动,循环条件fast.next!=null,如果fast到达最后一个节点,slow就到达了倒数第n个节点
(4)每次记录下slow的前一个节点pre,初始值为null
(5)将pre指向slow的下一个节点,就可以将第n个节点删除;但是要考虑倒数第k个节点,也就是顺数第一个节点,如果pre还是为初始值null,就直接返回slow.next
代码:
public ListNode removeNthFromEnd(ListNode head,
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。