zoukankan      html  css  js  c++  java
  • [lintcode] Binary Tree Maximum Path Sum II

    Given a binary tree, find the maximum path sum from root.

    The path may end at any node in the tree and contain at least one node in it.

    给一棵二叉树,找出从根节点出发的路径中,和最大的一条。

    这条路径可以在任何二叉树中的节点结束,但是必须包含至少一个点(也就是根了)。

    /**
     * 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 an integer
         */
        public int maxPathSum2(TreeNode root) {
            if (root ==  null) {
                return Integer.MIN_VALUE;
            }
            
            int left = maxPathSum2(root.left);
            int right = maxPathSum2(root.right);
            
            return root.val + Math.max(0, Math.max(left, right));
        }
    }
  • 相关阅读:
    【Golang基础总结】数组和切片的比较
    如何转载别人的文章
    C语言字节对齐问题详解
    幷查集拓展
    贪心
    dfs
    Trie
    哈夫曼树
    bfs
    并查集
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5773598.html
Copyright © 2011-2022 走看看