描述:
Given a sorted linked list, delete all duplicates such that each element appear only once.
For example,
Given 1->1->2
, return 1->2
.
Given 1->1->2->3->3
, return 1->2->3
.
思路:
simple,从头到尾遍历结点,如果下一个结点不为空且当前结点和下一个节点相同,删除下一个结点,否则,遍历下一个结点。
代码:
public ListNode deleteDuplicates(ListNode head) {
if(head==null)
return head;
ListNode p=head,q;
while (p.next!=null)
{
q=p;
if(q.val==p.next.val)
{
while(p.next!=null&&q.val==p.next.val)
p=p.next;
q.next=p.next;
p=q.next;
if(p==null)
break;
}
else
p=p.next;
}
return head;
}
结果: