二叉樹中的最大路徑和 遞迴 分治

2021-10-04 13:09:01 字數 1405 閱讀 4706

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

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

示例 1:

輸入:[1,2,3]

**1**

**/ \\**

**2** **3**

輸出:6

示例 2:

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

-10/ \

920

/ \

15 7

輸出:42

/**

* definition for a binary tree node.

* public class treenode

* }*/class solution

//int[0]表示該結點的一條最大開路徑, int[1]表示包含該結點的最大閉合路徑

private int getresult(treenode root)

if(root.left!=null && root.right==null)

if(root.left==null && root.right!=null)

int arrleft = getresult(root.left);

int arrright = getresult(root.right);

int max1 = math.max(arrleft[1],arrright[1]);

int curr = root.val + arrleft[0]+arrright[0];

max1 = math.max(curr,max1);

max1 = math.max(max1,root.val + arrleft[0]);

max1 = math.max(max1,root.val + arrright[0]);

max1 = math.max(max1,root.val);

int max0 = math.max(arrleft[0]+root.val,arrright[0]+root.val);

max0 = math.max(max0,root.val);

arrleft[0] = max0;

arrleft[1] = math.max(max1,max0);;

return arrleft;

}}

二叉樹中的最大路徑和 遞迴

二叉樹中的最大路徑和 給定乙個非空二叉樹,返回其最大路徑和。本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。package factory import tree.treenode description 二叉樹中的最大路徑和 author...

二叉樹最大路徑和 python 二叉樹最大路徑和

1.題目描述 輸入乙個二叉樹層次遍歷的結果,輸出這個二叉樹最大路徑和。路徑不一定從根節點開始和葉子節點結束。只要是連續的路徑就可以。如輸入 10,9,20,null,null,15,7 109 20 15 7 輸出 42 2.首先將乙個陣列還原成乙個二叉樹。然後根絕二叉樹的根節點返回最大路徑和。cl...

二叉樹最大路徑和

每個節點不可以重複經過求,求二叉樹的最大路徑和。二叉樹如圖 本文採用深度優先演算法解題。假設每個節點都有兩個屬性,s stop c continue s屬性為,該節點及其以下節點的不停止走法最大值。c屬性為在還有路可走的情況下的最大值。舉例說明 node4節點,有兩條路可走 路線一和路線二 路線一意...