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

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

https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024

/**
 * 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){
        return head;
    }

    struct ListNode *p=head,*q=head->next,*s=(struct ListNode*)malloc(sizeof(struct ListNode)),*s1=s;
    while(q){
        if(p->val==q->val){
            while (p->val==q->val) {//p->val!=q->val时,跳出
                p=p->next;
                q=q->next;
                if(!q){//若q为空
                    s1->next=NULL;
                    return s->next;
                }
            }
           
            //从新的开始
        }else {
        s1->next=p;//将单一元素链成新表
        s1=s1->next;
        
        }
        p=q;
        q=q->next;//节点移动
    }

    s1->next=p;
    p->next=NULL;
    return s->next;


}

全部评论

相关推荐

05-12 17:00
门头沟学院 Java
king122:你的项目描述至少要分点呀,要实习的话,你的描述可以使用什么技术,实现了什么难点,达成了哪些数字指标,这个数字指标尽量是真实的,这样面试应该会多很多,就这样自己包装一下,包装不好可以找我,我有几个大厂最近做过的实习项目也可以包装一下
点赞 评论 收藏
分享
06-07 12:20
新余学院 Java
点赞 评论 收藏
分享
练习生懒羊羊:开飞机把这个公司创飞吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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