💨

LeetCode 563. Binary Tree Tilt

2022/08/01に公開

https://leetcode.com/problems/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