Day129 | 灵神 | 二叉树 | 二叉树的堂兄弟节点II
Day129 | 灵神 | 二叉树 | 二叉树的堂兄弟节点II
2641.二叉树的堂兄弟节点II
2641. 二叉树的堂兄弟节点 II - 力扣(LeetCode)
思路:
笔者这道题就算告诉我要用层序遍历,后面我也没做出来…..
要从父节点思考子节点,而不是单纯从子节点下手
以这个例子为例
要算第三层,就要考虑第二层,当我们还在遍历第二层的时候,就把第二层的节点存起来
然后遍历一次第二层节点得到 第三层节点的和 10+1+7=18
为什么要算和是多少呢?因为我们要知道4的左右孩子的值是多少就必须知道9的左右孩子的和
而我们把所有结点的和加起来以后,再减去 4的左右孩子的值,那剩下的不就是9的左右孩子的值吗
算一下就是 10+1+7=18,这是第三层节点的和 4的左右孩子和是11,9的是7
那么4的左右孩子的值就是 18-1-10=7,而9的左右孩子就是18-7=11了
所以要考虑父节点那一层
遍历一遍当前层结点算出和,再遍历一次进行赋值
完整代码:
1 | class Solution { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Darlingの妙妙屋!
评论