【LeetCode with Python】 Binary Tree Maximum Path Sum
2014-06-16 22:46
609 查看
博客域名:http://www.xnerv.wang
原题页面:https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/
题目类型:二叉树
难度评价:★
本文地址:/article/1377523.html
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
本是比较简单的一道二叉树递归算法题目,也花了一些时间。主要还是在题意的理解中,本题要求的“最大路径和”,不一定经过了root,起点和终点可以是同一个点(即整个路径只有一个点)。
注意用一个类成员变量max来记录搜索过程中出现过的最大路径和,最后需要返回的就是这个max值。
此外还有一点容易搞错,当一棵子树计算完退栈时,向上一层返回的应该是该子树左路径、右路径中的最大值,而不是该子树中的“最大路径和”,因为从父节点搜索进入该子树时,只能选择其左分支或者右分治进入。
原题页面:https://oj.leetcode.com/problems/binary-tree-maximum-path-sum/
题目类型:二叉树
难度评价:★
本文地址:/article/1377523.html
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.
本是比较简单的一道二叉树递归算法题目,也花了一些时间。主要还是在题意的理解中,本题要求的“最大路径和”,不一定经过了root,起点和终点可以是同一个点(即整个路径只有一个点)。
注意用一个类成员变量max来记录搜索过程中出现过的最大路径和,最后需要返回的就是这个max值。
此外还有一点容易搞错,当一棵子树计算完退栈时,向上一层返回的应该是该子树左路径、右路径中的最大值,而不是该子树中的“最大路径和”,因为从父节点搜索进入该子树时,只能选择其左分支或者右分治进入。
class Solution: def __init__(self): self.max = None def doMaxPathSum(self, root): if None == root: return 0 left_sum = self.doMaxPathSum(root.left) right_sum = self.doMaxPathSum(root.right) max_left_sum = max(left_sum, 0) max_right_sum = max(right_sum, 0) cur_max = max_left_sum + max_right_sum + root.val if None == self.max or cur_max > self.max: self.max = cur_max return max(max_left_sum + root.val, max_right_sum + root.val) # @param root, a tree node # @return an integer def maxPathSum(self, root): self.doMaxPathSum(root) return self.max
相关文章推荐
- [leetcode]Binary Tree Maximum Path Sum @ Python
- 124. Binary Tree Maximum Path Sum Leetcode Python
- [LeetCode]题解(python):124-Binary Tree Maximum Path Sum
- *Leetcode_binary-tree-maximum-path-sum (updated c++ and python version)
- [Leetcode][python]Binary Tree Maximum Path Sum
- [leetcode刷题系列]Binary Tree Maximum Path Sum
- LeetCode_Binary Tree Maximum Path Sum
- Leetcode Maximum SubArray & Binary Tree Maximum Path Sum
- LeetCode: Binary Tree Maximum Path Sum
- [LeetCode] Binary Tree Maximum Path Sum Solution
- LeetCode Binary Tree Maximum Path Sum
- 【LeetCode with Python】 Maximum Depth of Binary Tree
- LeetCode——Binary Tree Maximum Path Sum
- 【leetcode】Binary Tree Maximum Path Sum
- [leetcode]Binary Tree Maximum Path Sum
- [LeetCode] Binary Tree Maximum Path Sum
- [leetcode]Binary Tree Maximum Path Sum
- [Leetcode] Binary Tree Maximum Path Sum
- leetcode: Binary Tree Maximum Path Sum
- leetcode–Binary Tree Maximum Path Sum