LeetCode 124 二叉樹中的最大路徑和

2022-07-09 05:06:10 字數 863 閱讀 7458

給定乙個非空二叉樹,返回其最大路徑和。

本題中,路徑被定義為一條從樹中任意節點出發,沿父節點-子節點連線,達到任意節點的序列。

該路徑至少包含乙個節點,且不一定經過根節點。

示例 1:

輸入:[1,2,3]

1

/ \2 3

輸出:6

示例 2:

輸入:[-10,9,20,null,null,15,7]

-10/

9 20

/ 15 7

輸出:42

class solution:

def __init__(self):

self.maxsum = -float('inf')

def maxpathsum(self, root: treenode) -> int:

def maxgain(root):

if root is none:

return 0

leftgain = max(0, maxgain(root.left))

rightgain = max(0, maxgain(root.right))

self.maxsum = max(self.maxsum, root.val + leftgain + rightgain)

return root.val + max(leftgain, rightgain)

maxgain(root)

return self.maxsum

"""時間複雜度:o(n)

空間複雜度:o(n)

遞迴的入口和出口、返回值,全域性狀態的更新邏輯

"""

LeetCode 124 二叉樹中的最大路徑和

給定乙個非空二叉樹,返回其最大路徑和。本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。示例 1 輸入 1,2,3 1 2 3 輸出 6示例 2 輸入 10,9,20,null,null,15,7 10 9 20 15 7 輸出 42本題與 ...

Leetcode 124 二叉樹中的最大路徑和

題目 給定乙個非空二叉樹,返回其最大路徑和。本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。示例 1 輸入 1,2,3 1 2 3輸出 6 示例 2 輸入 10,9,20,null,null,15,7 10 9 20 15 7 輸出 42 ...

leetcode124 二叉樹中的最大路徑和

參考 思路參考 參考 class solution return the max value ended at root node inthelp treenode root 分析1給定乙個非空節點,最終路徑經過這個節點有4種情況 1.只有該節點本身 左右子樹的路徑都是負數 2.該節點 左子樹路徑 ...