//删除链表中重复的元素 方法1:利用哈希表去重,然后遍历哈希表新建节点 方法2:双指针 class Solution { public ListNode deleteDuplicates(ListNode head) { if(head==null || head.next==null) { return head; } ListNode dummy = new ListNode(-1); dummy.next = head; ListNode a = dummy; ListNode b = head; while(b!=null && b.next!=null) { //初始化的时a指向的是哑结点,所以比较逻辑应该是a的下一个节点和b的下一个节点 if(a.next.val!=b.next.val) { a = a.next; b = b.next; } else { //如果a、b指向的节点值相等,就不断移动b,直到a、b指向的值不相等 while(b!=null && b.next!=null && a.next.val==b.next.val) { b = b.next; } //重新指向 a.next = b.next; b = b.next; } } return dummy.next; } } 链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii/solution/san-chong-jie-fa-duo-tu-zhan-shi-82-shan-chu-pai-x/