1080. 根到叶路径上的不足节点

发布时间 2023-05-23 18:10:00作者: Tianyiya

给你二叉树的根节点 root 和一个整数 limit ,请你同时删除树中所有 不足节点 ,并返回最终二叉树的根节点。

假如通过节点 node 的每种可能的 “根-叶” 路径上值的总和全都小于给定的 limit,则该节点被称之为 不足节点 ,需要被删除。

叶子节点,就是没有子节点的节点。

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/insufficient-nodes-in-root-to-leaf-paths
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution {
    public TreeNode sufficientSubset(TreeNode root, int limit) {
        return solve(root, 0, limit) ? root : null;
    }

    public boolean solve(TreeNode node, int sum, int limit) {
        if (node == null) {
            return false;
        }
        if (node.left == null && node.right == null) {
            return node.val + sum >= limit;
        }
        boolean left = solve(node.left, sum + node.val, limit);
        boolean right = solve(node.right, sum + node.val, limit);
        if (!left) {
            node.left = null;
        }
        if (!right) {
            node.right = null;
        }
        return left || right;
    }
}