見這篇題解
/**
* 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 沒看題解獨自...