主要注意的是倒数第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; }