public ListNode removeNthFromEnd(ListNode head, int n) {
ListNode p=head;//指针完成遍历链表
ListNode q=head;//指向要删除数据
ListNode x=head;//指向要删除的前一个
int i=0;//记录标志
while(p!=null){
p=p.next;
i++;
if(i>n){//当记录标志到大于n时,p距离q同为n
q=q.next;
}
if(i>n+1){//同上
x= x.next;
}
}
if(q==x){//当q和x指向同一地址时说明删除头指针
head=head.next;
}else{
x.next=q.next;
}
return head;
}
05-13
222
06-09
285
02-24
1643
10-12
558
10-12
237
10-14
168