ZBLOG

class MyLinkedList { public: struct ListNode{ int val; ListNode *next; ListNode(int val) : val(val),next(nullptr){} }; MyLinkedList() { _dummy = new ListNode(0); // 这里定义的头结点 是一个虚拟头结点,而不是真正的链表头结...

deleteAtIndex 方法中,需要删除指定位置的节点后释放内存。修改代码如下:

void deleteAtIndex(int index) {
    if (index >= _size || index < 0) return;

    ListNode* cur = _dummy;
    while (index--) {
        cur = cur->next;
    }
    
    ListNode* toDelete = cur->next; 
    cur->next = cur->next->next;
    
    delete toDelete; // 释放删除的节点的内存
    
    _size--;
} 

这样,在删除节点后会释放掉该节点所占用的堆内存。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=8391

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?