您的位置:首页 > 理论基础 > 数据结构算法

删除链表中倒数第n个节点

2017-03-29 22:12 183 查看
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,新建链表辅助操作很重要!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息