1、题目描述
编写代码,移除未排序链表中的重复节点。保留最开始出现的节点。
示例1:
输入:[1, 2, 3, 3, 2, 1]
输出:[1, 2, 3]
示例2:
输入:[1, 1, 1, 1, 2]
输出:[1, 2]
2、方法
1)快慢指针法
public ListNode removeDuplicateNodes(ListNode head){
if(head == null){
return null;
}
ListNode slow = head;
while(slow != null){
ListNode fast = slow;
while(fast.next != null){
if(fast.next.val == slow.val){
// 此处把旧的fast.next删除,新的fast.next为删除的节点的下一个节点
fast.next = fast.next.next;
}else{
fast = fast.next;
}
}
slow = slow.next;
}
return head;
}