124 二叉樹中的最大路徑和(高頻題)

2021-10-22 14:18:50 字數 780 閱讀 5357

見這篇題解

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

dfs(root)

;return res;

}public

intdfs

(treenode root)

/** q:左右孩子貢獻為什麼要大於等於0?

a: 因為計算從某一節點出發的路徑和的時候,計算公式為: 當前節點值 + 左孩子貢獻 + 右孩子貢獻,

而左右孩子貢獻是「可選的」,也就是說當某一邊貢獻小於0的時候,我可以在計算路徑和時不算這一邊

這種情況也就相當於其貢獻為 0,但是注意路徑和至少包含「當前節點的值」。

**/int leftmax = math.

max(0,

dfs(root.left));

// 左孩子貢獻

int rightmax = math.

max(0,

dfs(root.right));

// 右孩子貢獻

res = math.

max(res, root.val + leftmax + rightmax)

;// 更新res

return root.val + math.

max(leftmax, rightmax)

;// 返回當前節點的總貢獻

}}

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 輸出 42思路 對...

124 二叉樹中的最大路徑和

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