您的位置:首页 > 其它

Remove Duplicates from Sorted List II

2013-05-26 14:56 239 查看
题目:

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
.

分析:先处理头指针,再处理重复问题。

代码如下:

ListNode *deleteDuplicates(ListNode *head) {

while(head!=NULL)

{

int i=0;

while(head->next!=NULL&&head->val==head->next->val)

{

head=head->next;

i++;

}

if(i>0)

{

head=head->next;

}

else

{

break;

}

}

if(head==NULL)return head;

if(head->next==NULL)return head;

ListNode *head1=head;

while(head1->next!=NULL)

{

ListNode *head2=head1->next;

int i=0;

while(head2->next!=NULL&&head2->next->val==head2->val)

{

head2=head2->next;

i++;

}

if(i>0)

{

head1->next=head2->next;

}

else

{

head1=head1->next;

}

}

return head;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: