给你一个链表,删除链表的倒数第 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]
class Solution {
public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode t=new ListNode(0,head);
ListNode f=t;
ListNode s=t;
//f先走n步
for(int i=0;i<=n;i++){
f=f.next;
}
//然后一起走,但f为null时,s就走到了倒数第n个节点
while(f!=null){
f=f.next;
s=s.next;
}
//删除节点
s.next=s.next.next;
return t.next;
}
}