题解 | #删除链表的节点# 同JZ76的思路

删除链表的节点

https://www.nowcoder.com/practice/f9f78ca89ad643c99701a7142bd59f5d

class Solution {
public:
    ListNode* deleteNode(ListNode* head, int val) {
        if(head == nullptr) return nullptr;
        
        // 创建一个虚拟头节点
        ListNode* dummy = new ListNode(0);
        dummy->next = head;
        ListNode* pCurr = head;
        ListNode* pPrev = dummy;

        while(pCurr->next != nullptr && pCurr != nullptr){
            if(pCurr->val == val){
                pPrev->next = pCurr->next;
                pCurr = pPrev->next;
            }
            else{
                pCurr = pCurr->next;
                pPrev = pPrev->next;
            }
        }
        // 返回新的头节点
        ListNode* newHead = dummy->next;
        return newHead;
    }
};

全部评论

相关推荐

这是什么操作什么意思,这公司我服了...
斯派克spark:意思是有比你更便宜的牛马了
点赞 评论 收藏
分享
05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务