public Node deleteDuplicated(Node head) {//链表去重,留下一个
if (head == null) {
return head;
}
Node prev = null;
Node p1 = head;
Node p2 = head.next;
while (p2 != null) {
if (p1.val != p2.val) {
prev = p1; p1 = p2; p2 = p2.next;
} else {
while (p2 != null && p2.val == p1.val) {//刚进来p21=null。执行一次后可能为null,所以在这里要保证
p2 = p2.next;
}
if (prev == null) {
head = p2;
} else {
prev.next = p2;
}
p1 = p2;
if (p2 != null) {
p2 = p2.next;
}
}
}
return head;
}
List: the list to remove duplicates, leaving only a
Guess you like
Origin blog.51cto.com/14232658/2444524
Recommended
Ranking