每日一笑:
騎電動車去送兒子上學,校門口碰到他班裡乙個女生,小女孩剛從她爸的別克上下來,衝兒子譏笑說「你不是說你爸有個寶馬嗎,原來是這樣的寶馬啊。」我心想這小子牛吹大了,這下糗了吧,兒子卻機智的回答「有寶馬需要開給你看嗎?我又不打算泡你。」
題目:
給定乙個非空二叉樹,返回其最大路徑和。
本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。
示例 1:
輸入: [1,2,3]
1/ \
2 3
輸出: 6
示例 2:
輸入: [-10,9,20,null,null,15,7]
-10/ \
9 20
/ \
15 7
輸出: 42
思路:
做這道題首先要明白題目中最大路徑的意思,簡而言之就是以任意節點為起點通過其他節點形成一條路徑,使得該路徑上的節點值之和最大。
例如:以題目中的例項二為例,節點15到20到7為最大的路徑,所以例項二的最大路徑和為42。
我的實現思路是先定義乙個最大值的變數,並賦予其範圍的最小值,然後通過遞迴計算每個節點可以產生的最大值,然後用得出的最大值與最大值的變數進行比較,區最大值。
**實現:
/**樹的類最後附上執行資源使用情況:* definition for a binary tree node.
* public class treenode
* } */
class
solution
//獲取樹最大貢獻值的方法
public
intmaxnumber(treenode tree)
//左右子節點的最大貢獻值
int left =maxnumber(tree.left);
int right =maxnumber(tree.right);
value = tree.val + math.max(left,0) + math.max(right,0);
//對比貢獻值,選擇最大的賦值
max =math.max(max, value);
return tree.val + math.max(math.max(left,0), math.max(right,0));}}
二叉樹最大路徑和 python 二叉樹最大路徑和
1.題目描述 輸入乙個二叉樹層次遍歷的結果,輸出這個二叉樹最大路徑和。路徑不一定從根節點開始和葉子節點結束。只要是連續的路徑就可以。如輸入 10,9,20,null,null,15,7 109 20 15 7 輸出 42 2.首先將乙個陣列還原成乙個二叉樹。然後根絕二叉樹的根節點返回最大路徑和。cl...
演算法 二叉樹中的最大路徑和
給定乙個非空二叉樹,返回其最大路徑和。本題中,路徑被定義為一條從樹中任意節點出發,達到任意節點的序列。該路徑至少包含乙個節點,且不一定經過根節點。示例 1 輸入 1,2,3 1 2 3輸出 6 二叉樹相關的題,大部分都可以用遞迴解決。本題中任意乙個節點有兩個相關的值需要關注 一是這個節點作為路徑根節...
演算法 二叉樹中的最大路徑和
路徑 被定義為一條從樹中任意節點出發,沿父節點 子節點連線,達到任意節點的序列。同乙個節點在一條路徑序列中 至多出現一次 該路徑 至少包含乙個 節點,且不一定經過根節點。路徑和 是路徑中各節點值的總和。給你乙個二叉樹的根節點 root 返回其 最大路徑和 輸入 root 1,2,3 輸出 6 解釋 ...