美文网首页
删除链表中重复的节点

删除链表中重复的节点

作者: gaookey | 来源:发表于2021-11-08 16:45 被阅读0次
void DeleteDuplication(ListNode** pHead)
{
    if(pHead == nullptr || *pHead == nullptr)
        return;

    ListNode* pPreNode = nullptr;
    ListNode* pNode = *pHead;
    while(pNode != nullptr)
    {
        ListNode *pNext = pNode->m_pNext;
        bool needDelete = false;
        if(pNext != nullptr && pNext->m_nValue == pNode->m_nValue)
            needDelete = true;

        if(!needDelete)
        {
            pPreNode = pNode;
            pNode = pNode->m_pNext;
        }
        else
        {
            int value = pNode->m_nValue;
            ListNode* pToBeDel = pNode;
            while(pToBeDel != nullptr && pToBeDel->m_nValue == value)
            {
                pNext = pToBeDel->m_pNext;

                delete pToBeDel;
                pToBeDel = nullptr;

                pToBeDel = pNext;
            }

            if(pPreNode == nullptr)
                *pHead = pNext;
            else
                pPreNode->m_pNext = pNext;
            pNode = pNext;
        }
    }
}

摘抄资料:《剑指offer》

相关文章

  • 删除链表中重复的节点

    删除链表中重复的节点在一个排序的链表中,如何删除重复的节点?

  • 18-删除链表节点、删除链表重复节点

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

  • Leetcode总结 -- 链表

    目录 链表的基本操作 改/遍历:while(?) 查: 返回倒数K个节点 增/删除:反转链表,删除链表中的重复节点...

  • 2019-02-19

    java删除链表中重复的节点(保留一个节点)

  • 删除链表中重复的节点

    《剑指offer》面试题18:题目二:删除链表中重复的节点。 题目:在一个排序的链表中,如何删除重复的节点?例如,...

  • Day 2 删除无序链表中的重复节点

    算法 Day2 删除无序链表中的重复节点,保留一个 给定一个无序单向链表的头节点,删除内部的重复节点,使其内部节点...

  • LeetCode 82. 删除排序链表中的重复元素 II

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

  • 82. 删除排序链表中的重复元素 II

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

  • leetCode进阶算法题+解析(十二)

    删除排序链表中的重复元素2 题目:给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的...

  • 删除链表中的重复节点

    题目:在一个排序的链表中,如何删除重复的节点? 思路:删除重复节点同样要考虑边界值的问题,头节点为重复,尾节点为重...

网友评论

      本文标题:删除链表中重复的节点

      本文链接:https://www.haomeiwen.com/subject/fqauzltx.html