15 Jun 2024C++ / Python / TypeScriptEasy

Binary Tree Tilt

Collected C++, Python, TypeScript solutions for binary tree tilt. Add a dedicated write-up later if you want deeper notes.

auto-generated entry for Binary Tree Tilt. the solution files are available below.

solution files

  • C++ binary-tree-tilt/synced-solution.cpp
  • Python binary-tree-tilt/synced-solution.py
  • TypeScript binary-tree-tilt/synced-solution.ts

Solution files

Pythonbinary-tree-tilt/synced-solution.py
class Solution:
    def findTilt(self, root: Optional[TreeNode]) -> int:
        total_tilt = class="syntax-number">0

        def subtree_sum(node):
            nonlocal total_tilt
            if not node:
                return class="syntax-number">0
            left = subtree_sum(node.left)
            right = subtree_sum(node.right)
            total_tilt += abs(left - right)
            return node.val + left + right

        subtree_sum(root)
        return total_tilt
C++binary-tree-tilt/synced-solution.cpp
class Solution {
public:
    int findTilt(TreeNode* root) {
        totalTilt = class="syntax-number">0;
        subtreeSum(root);
        return totalTilt;
    }

private:
    int totalTilt;

    int subtreeSum(TreeNode* node) {
        if (!node) {
            return class="syntax-number">0;
        }
        int left = subtreeSum(node->left);
        int right = subtreeSum(node->right);
        totalTilt += abs(left - right);
        return node->val + left + right;
    }
};
TypeScriptbinary-tree-tilt/synced-solution.ts
function findTilt(root: TreeNode | null): number {
    let totalTilt = class="syntax-number">0;

    const subtreeSum = (node: TreeNode | null): number => {
        if (!node) {
            return class="syntax-number">0;
        }
        const left = subtreeSum(node.left);
        const right = subtreeSum(node.right);
        totalTilt += Math.abs(left - right);
        return node.val + left + right;
    };

    subtreeSum(root);
    return totalTilt;
}