💨
LeetCode 563. Binary Tree Tilt
問題:バイナリーツリーが与えられるので各ノードのtiltの合計を返す。tiltとは左の木と右の木のそれぞれのノードの合計の差の絶対値。左の木のノードの合計が5で右の木のノードの合計が2なら3。
アプローチ:何も考えずにDFSをした
解法:
let sum = 0;
function run(node) {
if (!node) return 0;
let a = run(node.right);
let b = run(node.left);
sum += Math.abs(a - b);
return a + b + node.val;
}
run(root);
return sum;
node.leftで実行される関数はそのsubtreeのvalueの合計を返す。右も同じ。葉は0を返す。
Discussion