1.描述:
删除链表中倒数第n个节点
2.思路:先用一个for循环得到链表长度,再用一个for循环到要删的节点,操作指针
3.代码
ListNode *removeNthFromEnd(ListNode *head, int n) {
//ListNode *p= new ListNode(0);
ListNode *p=new ListNode(0);int i;ListNode *q=new ListNode(0);
p=head;
for(i=0;p!=NULL;i++)
{
p=p->next;
}
if(i==n){head=head->next;return head;}
q=head;
for(int m=1;m<i-n+1&&q!=NULL;m++)
{
p=q;
q=q->next;
}
p->next=q->next;
return head;
}
4.感想:刚开始只新建了一个链表操作,在第二个for循环中没有另用一个链表做辅助,导致老是runtime error,新建链表辅助操作很重要!