437-Path Sum III
Description
You are given a binary tree in which each node contains an integer value.
Find the number of paths that sum to a given value.
The path does not need to start or end at the root or a leaf, but it must go downwards (traveling only from parent nodes to child nodes).
The tree has no more than 1,000 nodes and the values are in the range -1,000,000 to 1,000,000.
Example:
root = [10,5,-3,3,2,null,11,3,-2,null,1], sum = 8
10
/ \
5 -3
/ \ \
3 2 11
/ \ \
3 -2 1
Return 3. The paths that sum to 8 are:
1. 5 -> 3
2. 5 -> 2 -> 1
3. -3 -> 11
問題描述
給定二叉樹, 每個節點有一個整數值
找出路徑上的節點之和為給定值的路徑個數
路徑不一定以根節點為開始節點, 以葉子節點為結束節點, 但是必須從父節點到孩子節點(即從上往下)
問題分析
分為兩個方法來做
find()找出以當前節點為開始節點的滿足條件的路徑的個數
pathSum()先序遍歷root, 用find()對每個節點計數並累加
解法
class Solution {
public int pathSum(TreeNode root, int sum) {
if(root == null) return 0;
return find(root,sum) + pathSum(root.left, sum) + pathSum(root.right, sum);
}
public int find(TreeNode root, int sum){
if(root == null) return 0;
return (sum == root.val ? 1 : 0) + find(root.left, sum - root.val) + find(root.right, sum - root.val);
}
}
相關文章
- Path Sum III
- 力扣 170. 兩數之和 III - 資料結構設計 two-sum III力扣資料結構
- Hackable: III
- Reflective Journal III
- 秒殺 2Sum 3Sum 4Sum 演算法題演算法
- GCD SUMGC
- Sum Problem
- 集合sum
- Diablo III ZOJ - 3769
- P110 III
- 15+18、3Sum 4Sum
- A - 卡牌遊戲 III遊戲
- [LintCode/LeetCode] Contains Duplicate IIILeetCodeAI
- 337-House Robber III
- 260-Single Number III
- Range Minimum Sum
- B - Minimum Sum
- Missing Subsequence Sum
- Leetcode Path SumLeetCode
- leetcode Sum系列LeetCode
- Sum of Left Leaves
- Path-sum
- 劍指 Offer 32 - III. 從上到下列印二叉樹 III二叉樹
- [LeetCode] 3163. String Compression IIILeetCode
- vulnhub靶場之HACKABLE: III
- 「譯」MotionLayout介紹 (part III)
- [LeetCode] 248. Strobogrammatic Number IIILeetCode
- LeetCode | 1 Two SumLeetCode
- SQL groupby sum 用法SQL
- 7.22 APPROX_SUMAPP
- the Sum of Cube hd 5053
- Leetcode 39 Combination SumLeetCode
- md5sum
- 112-Path Sum
- Leetcode 1 two sumLeetCode
- 理光gr3 GR III 替代
- 437. 路徑總和 III
- SAP HUM 巢狀HU初探 III巢狀