给定一个链表和一个正整数 n ,要求从链表中删除倒数第 n 个节点并返回链表的头节点。其中输入的 n 保证在合法范围内。要求只能遍历一次链表。题目链接:**点我**
样例输入输出
输入:[1,2,3,4,5] 5
输出:[2,3,4,5]
输入:[1,2,3,4,5] 3
输出:[1,2,4,5]
问题解法
使用两个指针,其中一个指针先走,走到距离头节点 n 个节点时,后续该指针继续往后遍历时,另一个指针从头节点开始,随着第一个指针每次移动一个节点向后遍历直到链表尾节点。当第一个指针移动到尾节点时,如果与另一个指针的距离刚好是 n 个几点,则删除另一个指针后面的节点,否则说明 n 刚好等于链表的长度,即要删除的节点是首节点。代码如下: