首页 > 其他分享 >删除链表重复的元素

删除链表重复的元素

时间:2023-02-24 09:44:15浏览次数:33  
标签:ListNode struct 删除 重复 next 链表 val cur

image

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     struct ListNode *next;
 * };
 */


struct ListNode* deleteDuplicates(struct ListNode* head){
    struct ListNode* cur = head;
   while((cur != NULL)&&(cur->next != NULL))
   {
       if(cur->val == cur->next->val)
            cur->next=cur->next->next;
        else
            cur=cur->next;
   }
    return head;


}

关键在于链表已按顺序排列,重复元素都为相邻,
指定 cur 指针指向头部 head
当 cur 和 cur.next 的存在为循环结束条件,当二者有一个不存在时说明链表没有去重复的必要了
当 cur.val 和 cur.next.val 相等时说明需要去重,则将 cur 的下一个指针指向下一个的下一个,这样就能达到去重复的效果
如果不相等则 cur 移动到下一个位置继续循环
image

标签:ListNode,struct,删除,重复,next,链表,val,cur
From: https://www.cnblogs.com/seekwhale13/p/17150241.html

相关文章