zoukankan      html  css  js  c++  java
  • lintcode596- Minimum Subtree- easy

    Given a binary tree, find the subtree with minimum sum. Return the root of the subtree.

    Notice

    LintCode will print the subtree which root is your return node.
    It's guaranteed that there is only one subtree with minimum sum and the given binary tree is not an empty tree.

    Example

    Given a binary tree:

         1
       /   
     -5     2
     /    /  
    0   2 -4  -5 
    

    return the node 1.


    分治+全局变量监控的遍历。

    用分治每次的确计算出当前的sum并作为上层需要的数据返回。但每次helper里同时暗搓搓比一下自己是不是比全局变量优秀了,取而代之。

    /**
     * Definition of TreeNode:
     * public class TreeNode {
     *     public int val;
     *     public TreeNode left, right;
     *     public TreeNode(int val) {
     *         this.val = val;
     *         this.left = this.right = null;
     *     }
     * }
     */
    
    
    public class Solution {
        /*
         * @param root: the root of binary tree
         * @return: the root of the minimum subtree
         */
         
        private int minSum = Integer.MAX_VALUE;
        private TreeNode minRoot = null;
        
        public TreeNode findSubtree(TreeNode root) {
            // write your code here
            
            if (root == null) {
                return minRoot;
            }
            
            subtreeSum(root);
            return minRoot;
            
        }
        
        private int subtreeSum(TreeNode root) {
            
            if (root == null) {
                return 0;
            }
            
            int leftSum = subtreeSum(root.left);
            int rightSum = subtreeSum(root.right);
            
            int result = leftSum + rightSum + root.val;
            
            if(result < minSum) {
                minSum = result;
                minRoot = root;
            }
            
            return result;
        }
    }
  • 相关阅读:
    sharedCopy收藏夹代码
    执行EXE程序出现unable to locate suitable Java runtime Environment on this machine java解决方法
    点击combo激活下拉
    解决方案
    C++Builder中开发Activex
    BCB常见文件类型说明
    三款Json查看小工具
    oracel故障数据恢复 ora01033错误解决过程.
    fushioncharts破解
    基于注解的表单生成
  • 原文地址:https://www.cnblogs.com/jasminemzy/p/7637070.html
Copyright © 2011-2022 走看看