删除链表的倒数第n个节点
题目
给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。
解题方法
快慢指针法
提示
1、如果链表长度为i,那么倒数第 n 个节点就是正数第 i-n+1 个节点。
2、单向链表中删除某个节点时,需要移动到此节点前一个节点进行删除。
3、定义虚拟头结点可以使对头节点的操作和对其它节点的操作统一。
解题思路
定义节点 fastNode 和 slowNode 充当快慢指针,当 fastNode 移动到第 n+1 个节点时slowNode 开始和 fastNode 同步移动,fastNode 移动到null时,slowNode移动到第i-n个节点位置,也就是倒数第n个节点前一个节点的位置。