leetcode @python 124. Binary Tree Maximum Path Sum
2016-04-01 19:06
573 查看
题目链接
https://leetcode.com/problems/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_max,记录当前计算得出的最大路径。递归的思路:左子树中的最大路径和,右子树中的最大路径和,以及左子树中以root.left为起点的最大路径(需要大于零)+右子树中以root.right为起点的最大路径(需要大于零)+root.val),这三者中的最大值就是最大的路径和代码
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution(object): current_max = float('-inf') def maxPathSum(self, root): """ :type root: TreeNode :rtype: int """ self.dp(root) return self.current_max def dp(self, root): if root == None: return 0 left = self.dp(root.left) right = self.dp(root.right) if not left or left < 0: left = 0 if not right or right < 0: right = 0 self.current_max = max(left + right + root.val, self.current_max) return max(left, right) + root.val
相关文章推荐
- python动态创建对象变量
- 学习python单元测试框架nose之---06nose的插件编写扩展功能
- leetcode @python 123. Best Time to Buy and Sell Stock III
- leetcode @python 122. Best Time to Buy and Sell Stock II
- leetcode @python 121. Best Time to Buy and Sell Stock
- 学习python单元测试框架nose之---05nose的tools使用
- python自动化配置脚本分析
- Python实现 zip解压缩到指定目录
- 学习python单元测试框架nose之---04nose的html测试报告输出
- Python使用XPATH解析特定结构XML文件速度提升方法
- 学习python单元测试框架nose之---03nose的xml测试报告输出
- 使用python的zabbix_api模块
- 学习python单元测试框架nose之---02nose多进程并行测试
- IP地址地理位置接口(python版)
- 学习python单元测试框架nose之---01nose框架初探
- python 多线程
- A Byte of Python 笔记(9) 面向对象编程
- [Java学习] Iterator, foreach, generics and callback in Java, C# and Python
- Python kmean
- Install Python 3.5.1 on Windows