力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 public ListNode deleteDuplicates (ListNode head) { // write code here //使用指针 if(head == null){ return null; } ListNode dummy = new ListNode(-1); dummy.next = head; ListNode slow = dummy.next; ListNode fast =dummy.next; fast = fast.next; while(fast!=null){ if(fast.val==slow.val){ //一定要注意比较的是值 slow.next=fast.next; fast = fast.next; }else{ slow = slow.next; fast = fast.next; } } return dummy.next; } 进阶: 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 public ListNode deleteDuplicates (ListNode head) { // write code here //上一题删选相同的,这一再上一次基础上再次筛选,如果相同,直接删除 //使用指针 if (head == null) { return null; } ListNode dummy = new ListNode(-1); //给链表前加上表头,方便可能的话删除第一个节点 dummy.next = head; ListNode cur = dummy; while(cur.next!=null&&cur.next.next!=null){ if(cur.next.val==cur.next.next.val){ int temp = cur.next.val; //去除所有相同值节点 while(cur.next!=null&&cur.next.val==temp){ cur.next = cur.next.next; } }else{ cur = cur.next; } } return dummy.next; }