首页 > 其他分享 >82. 删除排序链表中的重复元素 II

82. 删除排序链表中的重复元素 II

时间:2023-03-02 21:08:12浏览次数:39  
标签:node II next 链表 while 82 null 节点

存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。

返回同样按升序排列的结果链表。

 82. 删除排序链表中的重复元素 II_单链表

82. 删除排序链表中的重复元素 II_单链表_02


class Solution {
    public ListNode deleteDuplicates(ListNode head) {
        /**
        链表经典解法
            删除就用亚节点的镜像节点,最后返回哑节点的下一个
            如果他的    下个节点==下下节点的值 所以用while删除
                            (因为他重复的可能一连串多个 , 所以用while删除)
         */

         if(head==null){
             return null;
         }

         ListNode dummy=new ListNode(0,head);
         ListNode node=dummy;
         
        while(node.next!=null&&node.next.next!=null){
            if(node.next.val==node.next.next.val){
                int x=node.next.val;
                //while删除
                while(node.next!=null&&node.next.val==x){
                    node.next=node.next.next;
                }
            }else{
                 node=node.next;//继续推进
            }
           
        }


         return dummy.next;
    }
}

 

标签:node,II,next,链表,while,82,null,节点
From: https://blog.51cto.com/u_14689911/6096731

相关文章