分析:直接看代码
public static Node deleteDup3(Node x) {
Node tmp = x;
while(tmp != null) {
if (tmp.next == null) {
break;
}
if (tmp.val == tmp.next.val) {
tmp.next = tmp.next.next;
} else {
tmp = tmp.next;
}
}
return x;
}
最后给出一个递归的超级解法
public static Node deleteDup4(Node head) {
if (head == null || head.next == null) return head;
head.next = deleteDup4(head.next);
return head.val == head.next.val ? head.next : head;
}