题解 | #删除有序链表中重复的元素-I#

删除有序链表中重复的元素-I

https://www.nowcoder.com/practice/c087914fae584da886a0091e877f2c79

C语言版本

struct ListNode* deleteDuplicates(struct ListNode* head ) {

    // write code here

    struct ListNode* cur = head;        //设置当前节点

    struct ListNode* tmp = head->next;  //设置当前节点的下一个节点

    if(!head) return head;              //如果输入为空,则直接返回head

    while(cur && tmp){                  //当前节点和下一节点不为空,则继续循环

        if(tmp->val == cur->val){       //如果下一节点与当前节点值相等,则下一节点继续指向next,跳过此次循环

            tmp=tmp->next;

            continue;

        }

        cur->next = tmp;                //如果当前节点与tmp(下一节点)的值不相等,则将cur->next指向tmp

        cur = cur->next;                //更新cur \ tmp

        tmp = cur->next;

    }

    cur->next = NULL;                   //退出循环后,对于[1,1]的情况可能出现直接返回[1,1],因此需要将cur->next指向空。

    //对于[1,1]的输入,由于tmp指向NULL导致退出循环,此时cur->next并没有正常赋值,因此需要退出循环后进行更新cur->next

    return head;

}

全部评论

相关推荐

昨天 00:55
门头沟学院
区域赛银,邀请赛金,打算十二月打下Java基础、背点八股、写个外卖后去投福建小厂的寒假实习,简历应该怎么写呢?以及福州/和厦门有推荐的小厂吗?
牛客53210502...:简历一页:把区域银,邀请赛金标粗,其他的奖除非凑一页否则没有必要写。或者多页:每个站一行这样都列出来。项目经历看看牛客其他人是怎么写的,写的不好呢。简历打磨好按部就班没问题的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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