删除链表中重复的节点

删除链表中重复的节点

题目描述

在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5

  • 注意当第一个节点要被删除的时候,需要一个新的头节点指向

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function ListNode(x){
this.val = x;
this.next = null;
}
function deleteDuplication(pHead)
{
// write code here

let head=new ListNode(0);
head.next=pHead;
let left=head;
let right=head.next;
while(right!=null){
if(right.next!=null&&right.next.val==right.val){
while(right.next!=null&&right.next.val==right.val){
right=right.next;
}
left.next=right.next;
right=right.next;
}else{
left=left.next;
right=right.next;
}
}


return head.next;
}