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

2021-10-11 11:26:55 字數 905 閱讀 6204

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

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

方法一:遞迴演算法+貪心演算法

int max = integer.min_value;

public

intmaxpathsum

(treenode root)

dfs(root)

;return max;

}/**

* 返回經過root的單邊分支最大和, 即math.max(root, root+left, root+right)

* @param root

* @return

*/public

intdfs

(treenode root)

//計算左邊分支最大值,左邊分支如果為負數還不如不選擇

int leftmax = math.

max(0,

dfs(root.left));

//計算右邊分支最大值,右邊分支如果為負數還不如不選擇

int rightmax = math.

max(0,

dfs(root.right));

//left->root->right 作為路徑與已經計算過歷史最大值做比較

max = math.

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

;// 返回經過root的單邊最大分支給當前root的父節點計算使用

return root.val + math.

max(leftmax, rightmax)

;}

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.該節點 左子樹路徑 ...