Minimum Subtree

public class Solution {
    private TreeNode subtree = null;
    private int subtreeSum = Integer.MAX_VALUE;
    public TreeNode findSubtree(TreeNode root) {
        // write your code here
        dfs(root);
        return subtree;
    }
    
    private int dfs(TreeNode root){
        if(root == null){
            return 0;
        }
        int sum = dfs(root.left) + dfs(root.right) + root.val;
        if(sum < subtreeSum){
            subtreeSum = sum;
            subtree = root;
        }
        return sum;
    }
}

最后更新于

这有帮助吗?