57.在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指
针。
思路:先新建一个头节点,然后向后查找值相同的节点,重复查找后删除
public class Solution {
public ListNode deleteDuplication(ListNode pHead)
{
if(pHead == null)
return null;
ListNode first=new ListNode(-1);
first.next=pHead;
ListNode p=pHead;
ListNode preNode = first;
while(p!=null && p.next!=null)
{
if(p.val==p.next.val)
{
int val=p.val;
while(p!=null && p.val==val)
{
p=p.next;
}
preNode.next=p;
}
else{
preNode = p;
p=p.next;
}
}
return first.next;
}
}