zoukankan      html  css  js  c++  java
  • LeetCode——二叉树中的最大路径和

    Q:给定一个二叉树,请计算节点值之和最大的路径的节点值之和是多少。
    这个路径的开始节点和结束节点可以是二叉树中的任意节点
    例如:
    给出以下的二叉树,
    1↵ / ↵ 2 3
    返回的结果为6
    A:

        int maxValue;
        public int maxPathSum(TreeNode root) {
            maxValue = Integer.MIN_VALUE;
            maxPathDown(root);
            return maxValue;    
        }
        private int maxPathDown(TreeNode node){
            if(node==null)
                return 0;
            int left = Math.max(0, maxPathDown(node.left));//为负的就不要了
            int right = Math.max(0, maxPathDown(node.right));
            maxValue = Math.max(maxValue, left + right + node.val);
            return Math.max(left, right) + node.val;
        }
    
  • 相关阅读:
    11.26
    11.25
    11.24
    11.23
    11.22
    11.21
    11.20
    3.16结对作业1.2
    3.14结对作业1.0
    3.13Android学习
  • 原文地址:https://www.cnblogs.com/xym4869/p/12493179.html
Copyright © 2011-2022 走看看