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

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

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

/**
 * struct ListNode {
 *	int val;
 *	struct ListNode *next;
 * };
 */
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param head ListNode类 
 * @return ListNode类
 */
struct ListNode* deleteDuplicates(struct ListNode* head ) {
    // write code here
    if(head==NULL ||head->next==NULL)//首先,判断链表是否为空或者只有一个节点。如果是,则直接返回原链表头节点 head。
    {
        return head;
    }
    struct ListNode *current=head;//创建一个指针 current,初始化为链表头节点 head
    while(current->next!=NULL){//使用循环遍历链表,直到 current 的下一个节点为 NULL
        if(current->val==current->next->val){//在循环中,判断 current 的值是否与下一个节点的值相等。
            struct ListNode *duplicate=current->next;//如果相等,说明存在重复元素。创建一个指针 duplicate,指向下一个节点,
            current->next=current->next->next;//然后将 current 的 next 指针指向下下个节点,即跳过重复节点
            free(duplicate);
        }else{
            current=current->next;//如果不相等,说明没有重复元素,将 current 指针移动到下一个节点
        }
    }
    return head;//循环结束后,返回原链表的头节点 head
}

全部评论

相关推荐

不愿透露姓名的神秘牛友
09-09 14:10
大三,在字节实习两周,被同学举报,辅导员要求回学校怎么办?
我的代码出BUG了:方案1:找领导说明情况然后请个假,回去一天找辅导员报道,见完面直接溜 。方案2:给辅导员卖惨,卖惨内容为家里没钱有贷款+没钱吃饭+心理抑郁+不想活了+社会险恶(同学举报)+想一si了之,例如:.....。长线规划:你这个同学的行为太恶心了,一定暗中收集你这个同学的错误事迹。比如举报课程设计不是他自己做的、比如以后他要是考公,你去考场门口拉横幅说他***,就说你是他好朋友,拉横幅只是为了开玩笑
投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
09-01 21:40
已编辑
同济大学 Java
点赞 评论 收藏
分享
07-18 22:55
海南大学 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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