import java.util.*; public class Solution { public ListNode deleteDuplicates (ListNode head) { // write code here ListNode dummy = new ListNode(-1); //如果要删除全部重复的。只保留独特的。需要一个辅助的节点 ListNode prev = dummy; while (head!=null){ int cur = head.val; int cnt = 1; while (head.next!=null&&head.next.val == cur){ head = head.next; cnt++; } // 1 1 2 3 4 // h if (cnt==1){ prev.next = head; prev = prev.next; //prev.next = null;//这样不对,如果你这么写,就会把head的后面也断掉了。 //根本就不会遍历了 }else{ prev.next = head.next;//将prev的后续的节点更新为head的后面, //去除重复的节点。 } head = head.next; } return dummy.next; } }