【leetcode每日刷題】437. Path Sum III

https://leetcode.com/problems/path-sum-iii/

使用遞歸的方法

1、遍歷根節點開始的路徑

2、遍歷根節點左子節點的路徑數量

3、遍歷根節點右子節點的路徑數量

4、遞歸

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    int totalPaths = 0;
    public int pathSum(TreeNode root, int sum) {
    if(root!=null){
        traverseAllPaths(root, sum, 0);
        pathSum(root.left, sum);
        pathSum(root.right, sum);
    }
    
    
    return  totalPaths;
    
}

private void traverseAllPaths(TreeNode root, int sum, int currentSum){
    if(root !=null){
        
       currentSum += root.val;
       if(sum == currentSum){
           totalPaths++;
       }
       traverseAllPaths(root.left, sum, currentSum);
       traverseAllPaths(root.right, sum, currentSum);
    }
    
}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章