neolee / pilot

进入编程世界的第一课
589 stars 842 forks source link

我不理解 这段红色代码的意思,它有什么用,去掉它代码也可以正常跑起来 #1532

Closed Totie-O closed 11 months ago

Totie-O commented 11 months ago

IMG_3184

neolee commented 11 months ago

如果你创建 TreeNode 实例的时候直接传一个 children 列表给 __init__ 方法,就用到这一部分,你的测试代码没有这种用例,自然测不出它的作用。

看来你还没理解 __init__ 方法和创建实例对象的机制。

Totie-O commented 11 months ago

树的思想我能理解,但对我来讲,代码实现直接抽象了两个层级不止

Totie-O commented 11 months ago

IMG_3186

Totie-O commented 11 months ago

好吧,李老师我看懂了,理解代码的关键李老师确实写出来了,细看了好多遍才看出来,节点应该保存父节点和子节点的信息,从这个点出发,就可以看懂相关代码的实现,真的复杂,但是妙到家了。

Totie-O commented 11 months ago

IMG_3217 李老师,这两句语句,有啥区别,我的理解是一样的。。。。

Totie-O commented 11 months ago

好吧,李老师我理解了为啥这两句代码的区别了,实例化完A且没有指定parent=root的情况下,使用add_child这个函数就能补上这个属性,有区别。。。。

Totie-O commented 11 months ago

IMG_3256 李老师,那个tier的弯我绕不出来,我的想法是初始节点的tier设为1,要是有父节点,tier+1,然后继续迭代,但是我发现一个问题,我每次迭代tier又变成1,导致输出为2(正确的输出为3),请老师帮我指点一下

Totie-O commented 11 months ago

好吧,李老师,我采取了一个比较折中的方案,我先递归求出这个子节点的全部父辈节点,然后再定义一个函数再求出他的tier IMG_3260

Totie-O commented 11 months ago

好吧,李老师,我好像绕出来了,我想错方向了,不应该是赋值,而是应该直接叠加 IMG_3261