用时:15min
用时:15min
拿到题的第一反应是是用递归,然后直接开始写了后发现
递归需要满足的条件是问题可以拆分成子问题,但是根据题意,我们需要求的是每个节点左右节点和的差值,这个 “左右节点和” 对于每个节点来说,都是不一样的问题
所以还是双递归
1 | var findTilt = function(root) { |
But!!!!!!!!
看了一眼答案我觉得自己还是拿衣服了
原来计算左右节点之和,与累积左右节点只差并不矛盾,一个递归就能解决问题。就是DFS的时候顺便两者一起做了,累计左右节点就是 return root.val + left + right
而计算差值是 total += Math.abs(left-right)
1 | var findTilt = function(root) { |
还是年轻了,明明做过类似的递归