您的位置:首页 > 其它

删除排序链表的所有重复节点

2016-11-16 11:01 232 查看
package 链表中;
/**
* 删除排序链表的所有重复节点
* @author buder_cp
*
*/
public class removeDuplicatesFromSortedListII {
public static ListNode deleteDuplicates(ListNode head) {
ListNode newHead = new ListNode(0);
newHead.next = head;
ListNode pre = newHead;
ListNode p = head;
ListNode next = null;
while (p != null && p.next != null ) {
next = p.next;
if (p.val == next.val) {
while (next != null && next.val == p.val) {
next = next.next;
}
pre.next = next;
p = next;
} else {
pre = p;
p = p.next;
}
}
return newHead.next;
}

public static void main(String[] args) {
int[] array = {1,2,3,3,4,4,4,4,4,5,66,66};
ListNode head = ListNode.arrayToList(array);
head = deleteDuplicates(head);
ListNode.printList(head);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  链表