删除链表中重复的节点,重复的节点不保留

思路:
定义一个虚拟节点,保存删除了重复节点的链表。
定义一个cur节点遍历整个链表,通过循环比较cur.data和cur.next.data,不相同就将节点插入虚拟链表,并返回

public ListNode deleteDuplication(){
        ListNode node=new ListNode(-1);
        ListNode cur=this.head;
        ListNode tmp=node;
        while(cur!=null){
            if(cur.next!=null&&cur.data==cur.next.data){
                //1、循环
                //2、退出循环 cur要多走一步
           while(cur.next!=null&&cur.data==cur.next.data){
                   cur=cur.next;
               }
               cur=cur.next;
            }else{
                tmp.next=cur;
                cur=cur.next;
                tmp=tmp.next;
            }
        }
        tmp.next=null;
        return node.next;
    }
发布了67 篇原创文章 · 获赞 12 · 访问量 1520

猜你喜欢

转载自blog.csdn.net/qq_42174669/article/details/102874557