leetcode || 124、Binary Tree Maximum Path Sum
2015-04-27 11:29
519 查看
problem:
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,
Return
Hide Tags
Tree Depth-first
Search
题意:在一棵二叉树中寻找一条路径,使其和最大
thinking:
(1)二叉树寻找一条路径比较难做,没有parent指针更难
(2)采用DFS遍历,从根结点开始
code:
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.
Hide Tags
Tree Depth-first
Search
题意:在一棵二叉树中寻找一条路径,使其和最大
thinking:
(1)二叉树寻找一条路径比较难做,没有parent指针更难
(2)采用DFS遍历,从根结点开始
code:
/** * 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) { int len; return calLen(root, len); } };
相关文章推荐
- LeetCode 124: Binary Tree Maximum Path Sum 树形动态规划
- LeetCode(124) Binary Tree Maximum Path Sum 二叉树的最大路径和 (如何递归?)
- [leetcode-124]Binary Tree Maximum Path Sum(c++)
- leetcode 124: Binary Tree Maximum Path Sum
- leetcode-124:Binary Tree Maximum Path Sum(Java)
- Java for LeetCode 124 Binary Tree Maximum Path Sum
- leetcode 124 —— Binary Tree Maximum Path Sum
- LeetCode: Binary Tree Maximum Path Sum [124]
- LeetCode 124 Binary Tree Maximum Path Sum
- leetcode-124:Binary Tree Maximum Path Sum(Java)
- leetcode[124]Binary Tree Maximum Path Sum
- LeetCode124 Binary Tree Maximum Path Sum
- [LeetCode 124] - 二叉树最大路径和(Binary Tree Maximum Path Sum)
- Leetcode 124 Binary Tree Maximum Path Sum 二叉树最大路径和
- leetcode_c++:树:Binary Tree Maximum Path Sum(124)
- 124 Binary Tree Maximum Path Sum [Leetcode]
- LeetCode124:Binary Tree Maximum Path Sum
- [LeetCode]124 Binary Tree Maximum Path Sum
- 【Leetcode-Hard-124】Binary Tree Maximum Path Sum
- Leetcode-124: Binary Tree Maximum Path Sum