路徑總和 III

2021-09-25 03:57:11 字數 845 閱讀 6691

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

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

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

二叉樹不超過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 的路徑有:

1.  5 -> 3

2.  5 -> 2 -> 1

3.  -3 -> 11

兩層遞迴,第一層遞迴是用來搭建整個二叉樹的查詢框架,就是先找以本節點開始的,滿足條件的數量,然後查詢左邊這棵樹滿足條件的數量,查詢右邊這顆滿足條件的數量,然後把三者加起來

那麼怎麼找以本節點開始的滿足條件的數量呢?

也是遞迴的思想,先看看自己是不是已經滿足了條件,然後如果不滿足看以這個節點為根節點,左邊的值必須滿足目標值減去當前值

然後遍歷右邊這棵樹,和上面左邊的樹一樣的處理

/**

* definition for a binary tree node.

* struct treenode

* };

*/class solution

//以當前節點起始的滿足條件的點

int count(treenode* node, int sum)

};

LeetCode 路徑總和III

給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個節點,且節點數值範圍是 1000000,1000000 的整數。示例 root 10,5,3,3,2...

leetcode Tree 路徑總和 III

1,題目 2,思路 方法一 迭代法 方法二 用hashmap 字首和的遞迴回溯思路 3,方法一 迭代法 class solution int result countpath root,sum int a pathsum root.left,sum int b pathsum root.right,...

437 路徑總和 III

給定乙個二叉樹,它的每個結點都存放著乙個整數值。找出路徑和等於給定數值的路徑總數。路徑不需要從根節點開始,也不需要在葉子節點結束,但是路徑方向必須是向下的 只能從父節點到子節點 二叉樹不超過1000個節點,且節點數值範圍是 1000000,1000000 的整數。示例 root 10,5,3,3,2...