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))
  • 相关阅读:
    Vue.js
    Vue.js
    Vue.js
    Vue.js
    webpack(1)
    webpack(2)
    babel-loader7和babel8版本的问题
    [JZOJ4274] 终章-剑之魂
    [JZOJ427] 圣章-精灵使的魔法语
    BZOJ题表(红色表示已完成)
  • 原文地址:https://www.cnblogs.com/cong12586/p/13232507.html
Copyright © 2011-2022 走看看