zoukankan      html  css  js  c++  java
  • 腾讯//二叉树中的最大路径和

    给定一个非空二叉树,返回其最大路径和。

    本题中,路径被定义为一条从树中任意节点出发,达到任意节点的序列。该路径至少包含一个节点,且不一定经过根节点。

    示例 1:

    输入: [1,2,3]
    
           1
          / 
         2   3
    
    输出: 6
    

    示例 2:

    输入: [-10,9,20,null,null,15,7]
    
       -10
       / 
      9  20
        /  
       15   7
    
    输出: 42
    /**
     * Definition for a binary tree node.
     * public class TreeNode {
     *     int val;
     *     TreeNode left;
     *     TreeNode right;
     *     TreeNode(int x) { val = x; }
     * }
     */
    class Solution {
        private int max = Integer.MIN_VALUE;
        public int maxPathSum(TreeNode root) {
            helper(root);
            return max;
        }
        public int helper(TreeNode root)
        {
            if(root == null) return 0;
            int left = helper(root.left);
            int right = helper(root.right);
            int currSum = Math.max(Math.max(left+root.val, right+root.val), root.val);
            int currMax = Math.max(currSum, left+right+root.val);
            max = Math.max(currMax, max);
            return currSum;
        }
    }
    /**
     * Definition for a binary tree node.
     * struct TreeNode {
     *     int val;
     *     TreeNode *left;
     *     TreeNode *right;
     *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
     * };
     */
    class Solution {
    public:
        int maxPathSum(TreeNode* root) {
            int ret = INT_MIN;
            onePath(root, ret);
            return ret;
        }
        int onePath(TreeNode *root, int &ret){
            if(root == nullptr)
                return 0;
            int l = onePath(root->left, ret);
            int r = onePath(root->right,ret);
            ret = max(ret,max(0,l)+max(0,r)+root->val);
            return max(0,max(l,r)+root->val);
        }
    };
  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602451.html
Copyright © 2011-2022 走看看