Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list.
For example,
Given 1->2->3->3->4->4->5, return 1->2->5.
Given 1->1->1->2->3, return 2->3.
public ListNode deleteDuplicates(ListNode head) {
ListNode root = new ListNode(0);
root.next = head;
head = root;
while (root.next != null) {
int val = root.next.val;
ListNode pNode = root.next.next;
while (pNode != null) {
if (val != pNode.val) {
break;
}
pNode = pNode.next;
}
if (pNode == root.next.next) {
root = root.next;
} else {
root.next = pNode;
}
}
return head.next;
}

本文提供了一种从已排序链表中删除所有重复节点的方法,只保留原始列表中的唯一数字。通过迭代链表并比较相邻节点的值来实现这一目标。
126

被折叠的 条评论
为什么被折叠?



