主要注意的是倒数第n个节点可能是第1个节点,这个时候要分开讨论
public ListNode removeNthFromEnd (ListNode head, int n) {
// write code here
int cnt = 0;
ListNode rHead=head;
ListNode res=head;
while(head!=null){
cnt++;
if(cnt>n){
ListNode pre=rHead;
rHead=rHead.next;
if(head.next==null) {
pre.next=rHead.next;
return res;
}
}
head=head.next;
}
//删除的是第一个节点
return res.next;
}
京公网安备 11010502036488号