zoukankan      html  css  js  c++  java
  • 【leetcode】Binary Tree Maximum Path Sum

    Question :  

    Given a binary tree, find the maximum path sum.

    The path may start and end at any node in the tree.

    For example:
    Given the below binary tree,

           1
          / \
         2   3
    

     

    Return 6.

    Anwser 1 :    

    /**
      * Definition for binary tree
      * struct TreeNode {
      *     int val;
      *     TreeNode *left;
      *     TreeNode *right;
      *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
      * };
      */
     class Solution {
     public:
         int calLen(TreeNode *root, int &len)
         {
             if (root == NULL)
             {
                 len = 0;
                 return 0;
             }
             
             if (root->left == NULL && root->right == NULL)
             {
                 len = root->val;
                 return root->val;
             }
             
             int leftPath, rightPath;
             int leftLen;
             if (root->left)
                 leftLen = calLen(root->left, leftPath);
             else
             {
                 leftLen = INT_MIN;
                 leftPath = 0;
             }
             
             int rightLen;
             if (root->right)
                 rightLen = calLen(root->right, rightPath);
             else
             {
                 rightLen = INT_MIN;
                 rightPath = 0;
             }
             
             len = max(max(leftPath, rightPath) + root->val, root->val);
             int maxLen = max(root->val, max(leftPath + rightPath + root->val, 
                 max(leftPath + root->val, rightPath + root->val)));
             
             return max(max(leftLen, rightLen), maxLen);
         }
         
         int maxPathSum(TreeNode *root) {
             // Start typing your C/C++ solution below
             // DO NOT write int main() function
             int len;
             return calLen(root, len);
         }
     };


  • 相关阅读:
    学习前先认识一下MVC
    关于C#问号(?)的三个用处
    MVC上传图片示例
    在html中控制自动换行
    mvc中viewdata 和viewbag的区别
    eclipse 下找不到或无法加载主类的解决办法
    js实现checkbox全选与反选
    web组件新学--layer
    获取注册表最高权限
    pstools使用教程
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3053872.html
Copyright © 2011-2022 走看看