124 二叉樹中的最大路徑和

2021-08-20 08:26:32 字數 810 閱讀 7546

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

本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。

示例 1:

輸入: [1,2,3]

1/ \

2 3

輸出: 6

示例 2:

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

-10/ \

9  20

/  \

15   7

輸出: 42

思路:二叉樹中涵蓋某乙個節點為根結點的最大路徑和,等於該節點的節點值,加上左子樹的以根節點為路徑起始節點的最大路徑和(若為負,直接取0,不要這子樹了),加上右子樹的以根節點為路徑起始節點的最大路徑和(若為負,直接取0,不要這子樹了)。

其中左右子樹的以根節點為路徑起始節點的最大路徑和:貪心來做,狀態轉移方程為:

maxsum(*root)=max(root->val, root->val+maxsum(*root->left), root->val+maxsum(*root->right)).

class solution 

int maxpathsum(treenode* root)

};

124 二叉樹中的最大路徑和

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

124 二叉樹中的最大路徑和

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

124 二叉樹中的最大路徑和

給定乙個非空二叉樹,返回其最大路徑和。本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。示例 1 輸入 1,2,3 1 2 3輸出 6 class solution object def maxpathsum self,root 需要乙個函式...