[LeetCode]题解(python):124-Binary Tree Maximum Path Sum
2016-03-22 14:14
966 查看
[b]题目来源:[/b]
https://leetcode.com/problems/binary-tree-maximum-path-sum/
[b]题意分析:[/b]
给定一棵树,找出一个数值最大的路径,起点可以是任意节点或者叶子。
[b]题目思路:[/b]
我们可以先找路径的最大mr,ml,那么最大值是max(solve(root),solve(left),solve(right), max(mr + root.val + ml, root.val))。
[b]代码(python):[/b]
View Code
https://leetcode.com/problems/binary-tree-maximum-path-sum/
[b]题意分析:[/b]
给定一棵树,找出一个数值最大的路径,起点可以是任意节点或者叶子。
[b]题目思路:[/b]
我们可以先找路径的最大mr,ml,那么最大值是max(solve(root),solve(left),solve(right), max(mr + root.val + ml, root.val))。
[b]代码(python):[/b]
# 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): def maxPathSum(self, root): """ :type root: TreeNode :rtype: int """ def solve(root): if root == None: return 0 l,r = 0,0 if root.left: l = max(solve(root.left),0) if root.right: r = max(solve(root.right),0) ans1 = max(l,r) + root.val ans2 = l + r + root.val Solution.maxsum = max(Solution.maxsum,max(ans1,ans2)) print(Solution.maxsum) return Solution.maxsum if root == None: return 0 Solution.maxsum = root.val solve(root) return Solution.maxsum
View Code
相关文章推荐
- 构造Python中的常量类
- python--基础学习(三)字符串单引号、双引号、三引号
- 【翻译】Leapmotion-python开发官方文档(10)
- python 异常处理学习笔记
- python获取ipv6地址
- 在python中获取当前日期字符串(格式:X年X月X日)
- python中小用法之assert,*arg,**arg用法全解
- python异常处理 try.....except
- Python到底是解释型语言还是编译型语言
- Python多维数组和矩阵
- python基本文件操作
- python一些函数的使用
- python(6)- shelve模块
- Python中的dict,List及内建函数的使用
- Python cPickle模块
- Python中的循环,列表推导式
- python(6)- json和pickle模块
- Python 进阶——标准散列机制
- numpy用法介绍
- python 打印unicode字符串