随笔 - 138,  文章 - 0,  评论 - 17,  阅读 - 23万

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。

示例 1:

输入: 1->1->2
输出: 1->2

示例 2:

输入: 1->1->2->3->3
输出: 1->2->3

思路:要删除一个排序链表的重复元素,重复元素都是挨着的,还是用两个指针来解决问题,一个指针用来查找重复的元素,一个指针用来重新串联起一个新的链表。

复制代码
 ListNode* deleteDuplicates(ListNode* head) 
    {
        if(head==NULL) return head;
        ListNode* cur,*p;
        cur=p=head;
        while(cur)
        {
            if(p->val!=cur->val)
            {
                p->next=cur;
                p=cur;
            }
            cur=cur->next;
        }
        p->next=NULL;
        return head;
    }
复制代码

 

posted on   Mini_Coconut  阅读(375)  评论(0编辑  收藏  举报
< 2025年1月 >
29 30 31 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 29 30 31 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示