代码随想录算法训练营Day3

这次边做题边写。

定义链表的节点写法:

struct ListNode {
    int val;  // 节点上存储的元素
    ListNode *next;  // 指向下一个节点的指针
    ListNode(int x) : val(x), next(NULL) {}  // 节点的构造函数
};

 203移除链表元素:

方法一:先判断是否删除头节点,之后遍历链表,注意头节点要用while持续删除。因为头节点之前没有节点,所以难以删除。

方法二:创建虚拟头节点,统一删除规则。创建虚拟头节点代码:

ListNode* dummyhead= new ListNode(0);

dummyhead->next=head;

还需要注意C++中释放内存的写法。

707设计链表:理解链表的运作逻辑不难,难的是写代码时添加对于输入的判断。一写全是问题,还需要通过debug找问题出在哪里。晚点重新写一边代码。还有就是class的基础语法问题(又是渣基础导致的问题。)

206反转列表: 理解了双指针法后,写起来意外的简单。需要搞懂逻辑。能理解递归的代码,但是自己写写不出来。明天再消化吧。

花了超过3小时,还是没完全消化。明天还需要重新debug设计链表的代码找一下问题。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值