zoukankan      html  css  js  c++  java
  • leetcode 124. Binary Tree Maximum Path Sum


    Given a binary tree, find the maximum path sum.

    For this problem, a path is defined as any sequence of nodes from some starting node to any node in the tree along the parent-child connections. The path does not need to go through the root.

    For example:
    Given the below binary tree,

           1
          / 
         2   3
    

    Return 6.

    给出一棵二叉树,寻找一条路径使其路径和最大,路径可以在任一节点中开始和结束(路径和为两个节点之间所在路径上的节点权值之和)

    要找到二叉树种任意一点到任意一点相加的最大值,分三种情况,

    一种是从跟节点左侧的某个点走到跟节点右侧某个点,

    第二种是从跟节点左侧的某个点走到跟节点左侧的某个点,

    第三种是从跟节点右侧的某个点到跟节点右侧的某个点。

     current只是当前值和左侧最大和右侧最大的三者的比较,culculateSum这个函数的功能是递归求出某个点的左侧路径和右侧路径和自身值的三者的最大值,

    max[0]记录某个点左侧路径、右侧路径、自身、左侧加右侧加自身 四者之间的最大值。

    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    public class Solution {
        public int maxPathSum(TreeNode root) {
            int max[] = new int [1];
            max[0] = Integer.MIN_VALUE;
            culculateSum(root, max);
            return max[0];
        }
        
        public int culculateSum(TreeNode root, int[] max) {
            if (root == null) {
                return 0;
            }
            
            int left = culculateSum(root.left, max);
            int right = culculateSum(root.right, max);
            
            int current = Math.max(root.val, Math.max(root.val + left, root.val + right));
            max[0] = Math.max(max[0], Math.max(current, left + root.val + right));
            return current;
        }
    }
  • 相关阅读:
    新概念第二册(1)--英语口语听力课1
    外企面试课程(一)---熟悉常见的缩略词
    公司 邮件 翻译 培训 长难句 结课
    workflow
    公司 邮件 翻译 培训 长难句 20
    公司 邮件 翻译 培训 长难句 19
    Engineering Management
    公司 邮件 翻译 培训 长难句 18
    公司 邮件 翻译 培训 长难句 17
    第14.5节 利用浏览器获取的http信息构造Python网页访问的http请求头
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5776408.html
Copyright © 2011-2022 走看看