链表-链表删除

2020-12-08  本文已影响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;
    }
}
上一篇 下一篇

猜你喜欢

热点阅读