删除链表的倒数第n个节点
删除链表的倒数第n个节点
https://www.nowcoder.com/practice/f95dcdafbde44b22a6d741baf71653f6?tpId=196&&tqId=37084&rp=1&ru=/ta/job-code-total&qru=/ta/job-code-total/question-ranking
主要注意的是倒数第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;
}