题解 | #删除有序链表中重复的元素-II#
删除有序链表中重复的元素-II
https://www.nowcoder.com/practice/71cef9f8b5564579bf7ed93fbe0b2024
import java.util.*; /* * public class ListNode { * int val; * ListNode next = null; * } */ public class Solution { /** * * @param head ListNode类 * @return ListNode类 */ public ListNode deleteDuplicates (ListNode head) { // write code here if (head == null || head.next == null) { return head; } ListNode newHead = new ListNode(-1); Map<Integer, Integer> map = new HashMap<>(); ListNode node = head; while (node != null) { map.put(node.val, map.getOrDefault(node.val, 0) + 1); node = node.next; } ListNode newNode = newHead; ListNode cur = head; while (cur != null) { if (map.get(cur.val) == 1) { newNode.next = new ListNode(cur.val); newNode = newNode.next; } cur = cur.next; } return newHead.next; } }