zoukankan      html  css  js  c++  java
  • 437. Path Sum III 二叉树路径的和3

    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

    1. /**
    2. * Definition for a binary tree node.
    3. * public class TreeNode {
    4. * public int val;
    5. * public TreeNode left;
    6. * public TreeNode right;
    7. * public TreeNode(int x) { val = x; }
    8. * }
    9. */
    10. public class Solution {
    11. public int PathSum(TreeNode root, int sum) {
    12. if(root == null)
    13. return 0;
    14. return dfs(root, sum) + PathSum(root.left, sum) + PathSum(root.right, sum);
    15. }
    16. private int dfs(TreeNode root, int sum){
    17. int res = 0;
    18. if(root == null)
    19. return res;
    20. if(sum == root.val)
    21. res++;
    22. res+=dfs(root.left,sum - root.val);
    23. res+=dfs(root.right,sum - root.val);
    24. return res;
    25. }
    26. }







  • 相关阅读:
    机器学习---14
    机器学习---13
    机器学习--10
    机器学习--9
    机器学习--8
    机器学习--7
    机械学习--6
    大数据应用技术课程实践--选题与实践方案
    15.手写数字识别-小数据集
    14.深度学习-卷积
  • 原文地址:https://www.cnblogs.com/xiejunzhao/p/00ee84b8080ddf158f88cf3e39992165.html
Copyright © 2011-2022 走看看