2021-07-16 力扣刷题记录

这篇博客讨论了一个C++编程问题,涉及力扣网站的刷题过程中,针对链表反转的算法实现。作者指出,在使用静态列表初始化反向链表时,由于在栈中创建节点导致栈溢出。通过改用`new`关键字在堆上分配内存,成功解决了这个问题。博客深入解析了链表操作和内存管理,对于C++初学者和进阶者都有很好的参考价值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

力扣 刷题记录 C++

题目链接链接:https://leetcode-cn.com/leetbook/read/illustration-of-algorithm/9pdjbm/

输入[]或[1,2,3,4,····], head指向头节点

static ListNode* reverseList(ListNode* head) {
        vector<int> list;
        while(head!=NULL){
            list.push_back(head->val);
            head = head->next;
        }
        int size = list.size();
        ListNode* res = new ListNode(list[--size]);
        ListNode* tem = res;
        for (size--; size >= 0; size--){
            ListNode* newNode = new ListNode(list[size]);
            tem->next = newNode;
            tem = tem->next;
        }
        int k=0;
        return res;
    }

出现问题
ListNode res(list[–size]) 创建的实例对象开辟的空间在里,最终导致了栈溢出,使用new 关键字使其在中开辟空间后成功解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不谷尉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值