leetcode 7 437 路徑總和 III

2021-10-02 13:33:27 字數 1066 閱讀 8568

給定乙個二叉樹,它的每個結點都存放著乙個整數值。

找出路徑和等於給定數值的路徑總數。

路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的(只能從父節點到子節點)。

二叉樹不超過1000個節點,且節點數值範圍是 [-1000000,1000000] 的整數。

示例:root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8

10/ \

5 -3

/ \ \

3 2 11

/ \ \

3 -2 1

返回 3。和等於 8 的路徑有:

5 -> 3

5 -> 2 -> 1

-3 -> 11

每個結點的值既需要作為中間結點儲存在父親、爺爺結點的和中,也需要將其作為乙個新的路徑並儲存下來;

需要有乙個資料結構來儲存當前各個路徑的和,並允許結點值對這些和進行修改;

題目中給定二叉樹不超過1000個節點,最多存在1000個路徑,所以初始化長度為1000的陣列,第i個位置儲存從跟節點一直到當前結點的路徑上的第i個結點作為開始路徑的結點值的和;

count代表當前是從根結點開始的第count個結點;

當前結點在所有從根結點開始到本結點的路徑上,即從陣列從0到count-1上的所有元素都加當前值,如果等於sum,結果數量加一;

遍歷完該結點之後,把陣列中從0到count-1上的所有元素都減當前值,count–。

/**

* definition for a binary tree node.

* public class treenode

* }*/class

solution

pathsum

(root.left, sum)

;pathsum

(root.right, sum)

;for

(int i =

0; i < count; i++

) count--

;return allsum;

}}

LeetCode112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。遍...

LeetCode 112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和 sum 22,5 4 8 11 13 4 7 2 1 返回 true,因為存在目標和為 22 的根節點到葉子節點的路徑 5 ...

Leetcode 112 路徑總和

給定乙個二叉樹和乙個目標和,判斷該樹中是否存在根節點到葉子節點的路徑,這條路徑上所有節點值相加等於目標和。說明 葉子節點是指沒有子節點的節點。示例 給定如下二叉樹,以及目標和sum 22,5 48 1113 4 721 返回true,因為存在目標和為 22 的根節點到葉子節點的路徑5 4 11 2。...