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

2021-10-07 09:15:37 字數 1003 閱讀 9130

難度:困難

繼續抄答案嘿嘿

題目描述

解題思路

參考題解:【二叉樹的最大路徑和】主要理解題目意思,詳細**

遞迴,用乙個全域性變數來更新最大的路徑值,同時返回這個以當前節點為根節點能提供的最大路徑值

用這個圖來說明一下:

對於2這個節點來說,選擇1-2-4-8就不能再選擇1-2-5-8

所以遞迴返回時,要從2左邊子樹和右邊子樹所能提供的值裡選擇乙個最大的

但是返回的值只能代表這段路上的最大值,並不代表總體的最大值,用乙個總體變數來記錄整體最大值,max = math.max(max,root.val + left + right)

以乙個簡單的例子來看遞迴過程:

關鍵就是區分:

當前節點最大路徑和計算:以當前節點為起點的所有路徑和

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 沒看題解獨自...