题:
给你一个链表,删除链表的倒数第 n
个结点,并且返回链表的头结点。
进阶:你能尝试使用一趟扫描实现吗?
示例 1:
输入:head = [1,2,3,4,5], n = 2
输出:[1,2,3,5]
示例 2:
输入:head = [1], n = 1
输出:[]
示例 3:
输入:head = [1,2], n = 1
输出:[1]
【分析】
要使用一趟扫描遍历就实现这个结果,肯定不是暴力解决这么简单,因此需要思考有什么技巧
使用双指针,慢指针为头结点,快指针先移动到节点n,此时让快慢指针同时前进,当快指针到达链表末端时,慢指针此时所在位置的下一个节点就是要删除的节点;
指的注意的是,需要注意特殊情况进行处理,即需要删除的是头节点的情况
【代码】
class ListNode(object):
def __init__(self, val=0, next=None):