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

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

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

本题难度不大,是上一道题的扩展,思路代码如下:

首先,创建一个虚拟节点,并把它接在原链表的头结点之前,为后面删除重复头结点做准备

public ListNode deleteDuplicates (ListNode head) {
       ListNode res=new ListNode(0);
       res.next=head;
       ListNode cur=res;
对头结点进行判定,若为空则返回null

if (head==null){
           return null;
            }
主体代码,对各个值进行比较,然后删除相同值节点

 while (cur.next!=null&&cur.next.next!=null){
           if (cur.next.val==cur.next.next.val){//循环条件
               int tmp=cur.next.val;//把相同的值记下来
               while (cur.next!=null&&cur.next.val==tmp) {//循环条件,利用虚拟节点可以一直指向不同的节点,并一直找到值不相同的点
                   cur.next = cur.next.next;
               }
           }else{
               cur=cur.next;//不相同,将cur转向下一个节点前,继续循环
           }
        }
        return res.next;//销毁虚拟节点
    }

以上

全部评论

相关推荐

06-17 21:57
门头沟学院 Java
白友:噗嗤,我发现有些人事就爱发这些,明明已读不回就行了,就是要恶心人
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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