zoukankan      html  css  js  c++  java
  • Remove Duplicates from Sorted ListII

    给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。

    示例 1:

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

    示例 2:

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


    思路:(1)因为头结点可能被删除,所以要定义头结点;(2)定义两个指针,一个指向前驱结点,另一个指针指向前驱节的下一个结点,并不断找到值相等的结点。
    class Solution {
    public:
        ListNode* deleteDuplicates(ListNode* head) {
            
            if(!head || !head->next)
                return head;
            
            ListNode* dummy = new ListNode(-1);
            
           
            ListNode* p = dummy;
            dummy->next = head;
            while(p->next)
            {
                ListNode* cur = p->next;
                
                while(cur->next && cur->val == cur->next->val)
                    cur = cur->next;
                
                if(cur != p->next)
                    p->next = cur->next;
                else
                    p = p->next;
               
            }
            
            return dummy->next;
        }
    };
    
    
    

  • 相关阅读:
    OC内存管理
    摘要算法
    加密算法
    编码技术
    Golang遇到的一些问题总结
    SignalR
    uni-app 小程序 vue
    C# 调用 C++ dll的两种方式
    Vue 项目 VSCode 调试
    Navicat 导出 表结构
  • 原文地址:https://www.cnblogs.com/573177885qq/p/9613827.html
Copyright © 2011-2022 走看看