zoukankan      html  css  js  c++  java
  • 124,二叉树中的最大路径和

    # Definition for a binary tree node.
    class TreeNode:
    def __init__(self, x):
    self.val = x
    self.left = None
    self.right = None
    a = TreeNode(1)
    b = TreeNode(2)
    c = TreeNode(3)
    a.left = b
    a.right = c

    class Solution:
    def maxPathSum(self, root: TreeNode) -> int:
    # 定义一个数字存放最大的路径和
    self.max_sum = float("-inf")
    def dfs(root):
    # 当节点为空的时候返回零
    if not root:return 0
    # 递归左子树和右子树,并接收返回值
    left = dfs(root.left)
    right = dfs(root.right)
    # self.max_sum必然是left或者right的子树的路径,
    # 因此这里判断是否需要经过根节点
    self.max_sum = max(self.max_sum,left + right + root.val)
    # 这里不针对根节点,对于根节点的儿子节点来说,
    # 路径只能包含儿子节点中的一个
    return max(0,max(left,right) + root.val)
    dfs(root)
    return self.max_sum
    A = Solution()
    print(A.maxPathSum(a))
  • 相关阅读:
    MongodDB数据库安装和简单使用
    比较运算符
    Java习题
    JavaScript示例
    Java面向过程练习题7
    Java面向过程练习题6
    倒金字塔
    包含contains
    String 比较
    单词表
  • 原文地址:https://www.cnblogs.com/cong12586/p/13232507.html
Copyright © 2011-2022 走看看