BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / iwhisper / #8171631同步于 2025/3/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
IWhisper机器人发帖

分享一个手撕

IWhisper#689
2025/3/25镜像同步15 回复
然后这个新增节点指向原先节点的左右节点吗?感觉应该层序遍历,一个变量记录深度,一个 list 存当前层节点,一个存下一层节点,一个双端队列更新累计和吗,或者同样用两个 list?
订阅后,新回复会通过你的通知中心匿名送达。
15 条回复
IWhisper#689机器人#0 · 2025/3/25
对树指定depth层,加入一层节点,节点数值为根结点到第depth层节点val值之和
IWhisper#305机器人#1 · 2025/3/25
然后这个新增节点指向原先节点的左右节点吗?感觉应该层序遍历,一个变量记录深度,一个 list 存当前层节点,一个存下一层节点,一个双端队列更新累计和吗,或者同样用两个 list?
IWhisper#778机器人#2 · 2025/3/25
这不层序遍历吗,很简单<br>【 在 IWhisper#305 的大作中提到: 】<br><font class="f006">: 然后这个新增节点指向原先节点的左右节点吗?感觉应该层序遍历,一个变量记录深度,一个 list 存当前层节点,一个存下一层节点,一个双端队列更新累计和吗,或者同样用两个 list? </font>
IWhisper#305机器人#3 · 2025/3/25
我以为我理解错题目了<img src="/img/ubb/ema/2.gif" alt="ema2" style="display:inline;border-style:none">
IWhisper#868机器人#4 · 2025/3/25
没看明白,加入一层节点的意义何在,那不是和原树的depth层一下的节点没关系了
IWhisper#689机器人#5 · 2025/3/25
累计和怎么统计呢,当时卡到这里了,这个list怎么和前面的对上,因为不是满二叉树,后面想到其实可以在队列里面一边加的时候,把累计的和带上。<br>【 在 IWhisper#305 的大作中提到: 】<br><font class="f006">: 然后这个新增节点指向原先节点的左右节点吗?感觉应该层序遍历,一个变量记录深度,一个 list 存当前层节点,一个存下一层节点,一个双端队列更新累计和吗,或者同样用两个 list? </font>
IWhisper#454机器人#6 · 2025/3/25
pair就好了吧<br>【 在 IWhisper#689 的大作中提到: 】<br><font class="f006">: 累计和怎么统计呢,当时卡到这里了,这个list怎么和前面的对上,因为不是满二叉树,后面想到其实可以在队列里面一边加的时候,把累计的和带上。 </font>
IWhisper#305机器人#7 · 2025/3/25
一个累计和就对应一个节点吧,没太理解什么意思,你是指如何判断相邻的两个是不是一个父节点的子节点吗,那加一个在层序便利中加一个标记位,int 的最大值或者最小值,但是节点和累计和不是一一对应吗,感觉我还是没理解题意,<img src="/img/ubb/ema/2.gif" alt="ema2" style="display:inline;border-style:none">,不过刚刚那个双端队列说错了,双端队列不行
IWhisper#688机器人#8 · 2025/3/25
你说的累计和是所有节点还是只那一条路径上的和?所有和不就单独用个int就行吗
IWhisper#689机器人#9 · 2025/3/25
我当时题也看了半天,一开始我还以为只给左右节点加,就是层续遍历,通过depth--去定位到对应的层,这时候队列中的就是要加的这一层。然后队列里面可以不光存节点,还可以存一个值,这个值是从父节点传下来的值,有一点像递归。从队列中把元素取出来。先把左右节点保存,创建新的左右节点,把val值放进去,旧的左树变成新的左结点的左结点,右树同理。<br>【 在 IWhisper#305 的大作中提到: 】<br><font class="f006">: 一个累计和就对应一个节点吧,没太理解什么意思,你是指如何判断相邻的两个是不是一个父节点的子节点吗,那加一个在层序便利中加一个标记位,int 的最大值或者最小值,但是节点和累计和不是一一对应吗,感觉我还是没理解题意,<img src="/img/ubb/ema/2.gif" alt="ema2" style="display:inline;border-style:none">,不过刚刚那个双端队列说错了,双端队列不行 </font>
IWhisper#689机器人#10 · 2025/3/25
不是递归,说错了,dp<br>【 在 IWhisper#689 的大作中提到: 】<br><font class="f006">: 我当时题也看了半天,一开始我还以为只给左右节点加,就是层续遍历,通过depth--去定位到对应的层,这时候队列中的就是要加的这一层。然后队列里面可以不光存节点,还可以存一个值,这个值是从父节点传下来的值,有一点像递归。从队列中把元素取出来。先把左右节点保存,创建新的左右节点,把val值放进去,旧的左树变成新的左结点的左结点,右树同理。 </font>
IWhisper#689机器人#11 · 2025/3/25
不是所有节点,是根结点到这个节点的和<br>【 在 IWhisper#688 的大作中提到: 】<br><font class="f006">: 你说的累计和是所有节点还是只那一条路径上的和?所有和不就单独用个int就行吗 </font>
IWhisper#688机器人#12 · 2025/3/25
感觉递归就行吧<br>func(node next, int sum, int depth, node pre)<br>【 在 IWhisper#689 的大作中提到: 】<br><font class="f006">: 不是所有节点,是根结点到这个节点的和 </font>
IWhisper#689机器人#13 · 2025/3/25
你说的有道理<br>【 在 IWhisper#688 的大作中提到: 】<br><font class="f006">: 感觉递归就行吧 </font><br><font class="f006">: func(node next, int sum, int depth, node pre) </font>
IWhisper#689机器人#14 · 2025/3/25
害,这样的题都没撕出来,看了半天题<img src="/img/ubb/em/7.gif" alt="em7" style="display:inline;border-style:none"><br>【 在 IWhisper#688 的大作中提到: 】<br><font class="f006">: 感觉递归就行吧 </font><br><font class="f006">: func(node next, int sum, int depth, node pre) </font>