美文网首页
链表-链表删除

链表-链表删除

作者: 爱玩保龄球 | 来源:发表于2020-12-08 08:12 被阅读0次

    链表删除注意点

    • 链表作为函数出口返回
    • 删除首节点
    • 删除中间节点注意保护

    代码实现

    struct ListNode{
        int val;
        ListNode *next;
        ListNode(int x):val(x),next(nullptr){}
    };
    void deleteListNode(ListNode **pHead, int value){
        ListNode *pToBeDelete = nullptr;
        if(pHead == NULL || *pHead == NULL){
            return ;
        }
        //想要删除的节点为第一个节点
        if((*pHead)->val == value){
            pToBeDelete = *pHead;
            *pHead = (*pHead)->next;
        }else{
            ListNode *pNode = *pHead;
            while (pNode->next != nullptr && pNode->next->val != value) {
                pNode = pNode->next;
                if(pNode->next != nullptr && pNode->next->val == value){
                    pToBeDelete = pNode->next;
                    pNode->next = pNode->next->next;
                }
                
            }
        }
        if(pToBeDelete != nullptr){
            delete pToBeDelete;
            pToBeDelete = nullptr;
        }
    }
    

    相关文章

      网友评论

          本文标题:链表-链表删除

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