题解 | #删除链表的倒数第n个节点#

//定义一个哨兵位头结点,方便记录prev

 //先求出cur要前移的次数,然后通过prev删除

struct ListNode* removeNthFromEnd(struct ListNode* head, int n ) {

    // write code here

    if(head==NULL)

    {

        return head;

    }

    struct ListNode* node=head;

    struct ListNode* H=(struct ListNode*)malloc(sizeof(struct ListNode));

    H->next=head;

    struct ListNode* prev=H;

    struct ListNode* cur=head;

    int leng=0;

    while(node)

    {

        node=node->next;

        leng++;

    }

    int num=leng-n;

    while(num--)

    {

        cur=cur->next;

        prev=prev->next;

    }

    prev->next=cur->next;

    return H->next;

}

全部评论

相关推荐

仁者伍敌:实习生要工作经验,工作要实习经验
点赞 评论 收藏
分享
07-02 10:39
门头沟学院 Java
Steven267:说点真实的,都要秋招了,还没有实习,早干嘛去了,本来学历就差,现在知道急了,而且你这个简历完全可以写成一页,劣势太大了,建议转测试
点赞 评论 收藏
分享
06-04 09:27
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务