LeetCode437 路徑總和 III

2021-10-06 04:03:56 字數 933 閱讀 8103

題目:

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

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

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

二叉樹不超過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

思路:

這裡要用到兩個遞迴函式,第乙個是二叉樹節點的先序遍歷,第二個函式是尋找root為根節點的滿足路徑和為sum的路徑數目。

第乙個函式的所有結果要相加,第二個函式要注意sum在遞迴的時候每選擇乙個節點就會減少。

**:

class solution 

if (root->right)

return ans;

}private:

//以root為根節點滿足路徑和為sum的路徑條數

int findpath(treenode* root, int sum)

ans += findpath(root->left, sum - root->val);

ans += findpath(root->right, sum - root->val);

return ans;

}};

Leetcode 437 路徑總和 III

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

LeetCode 437 路徑總和 III

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

leetcode 437 路徑總和 III

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