437. 路径总和 III

package leetcode;

public class demo_437 {
    int count=0;
    public int pathSum(TreeNode root, int targetSum) {
        order(root, targetSum);
        return count;
    }
    public void order(TreeNode root,int targetSum) {
        if(root!=null) {
            path(root,0,targetSum);
            //将数中的每一个节点都当作一个根节点进行遍历
            order(root.left,targetSum);
            order(root.right,targetSum);
        }
    }
    public void path(TreeNode root,int sum,int targetSum) {
        //以当前节点为根节点,找出是否满足的路径
        if(root!=null) {
            sum=sum+root.val;
            if(sum==targetSum) {
                count=count+1;
            }
            path(root.left, sum, targetSum);
            path(root.right, sum, targetSum);
            sum=sum-root.val;
        }
    }
}

 

posted on 2022-04-29 11:34  一仟零一夜丶  阅读(21)  评论(0)    收藏  举报