训练营刷题第三天_python

链表 part1
题目:203 707 206

前提:链表有难度
习惯收获:1、适当看好的解题思路
2、清晰思维过程,可通过 图(甚至是彩图,例如这题用 黑色表示原链表next,蓝色表示新链表next),或者伪代码
3、虽然以前写过,但不要依靠模糊的印象,容易似是而非,模糊细节,蒙对的情况却误以为思路清晰

707
先写的707,因为对链表的实现掌握的还不够。
收获:发现确实不够,链表的实现还不够熟练,当初数据结构与算法是C++写的,用python 有点陌生,python没有指针,关于引用和复制有点区分不开,得回去学学! 也可能遇类似问题!
收获:知识点上:头指针为空,按707算,正式节点从头指针的指向的节点开始算且索引为0。(leetcode 有 listnode 和 yummy,但有点模式,自己写node快乐一点,类似的还有树)
在这里插入图片描述
注:对着人家题解写的,有空再二刷

203
在这里插入图片描述
在kimi的辅助下对了~
帮助了两点:1、本人读题不清楚,题目的head指向的是第一个元素,并不是空节点,需要自己加一个 节点(如 dummy = Listnode(0)(不是0也可以是其他数) dummy.next = head)
2、注意 在删完节点之后 current_node 应变为 current_node.next ( 注意:1、若 current_node.next = None,代码并不会报错, 判断语句 if curent.next : 判断为假;2、current_node 和 current_node.next 都是节点的内存地址,直接 赋值= 不会有歧义,也不会出现 val 赋给了内存地址的问题 ,707的问题得到了一定的解答)

206
自己思路一开始在递归,但没递归明白,想迭代,没明白,看了一个 uu的图解,悟了:
在这里插入图片描述
然后迭代的跳出条件想了很久
(注意,我对迭代和循环已经有了区别的意识,hhh,迭代一定是通过循环的方式去迭代的,有明确数量的迭代 可以用for,也小可能用while,不明确数量的用while)
在这里插入图片描述
递归的方法还没想好,明天再补上~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值