437. Path Sum III

Posted skillking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了437. Path Sum III相关的知识,希望对你有一定的参考价值。

一、题目

  1、审题

  技术图片

  2、分析

    求所有的单条路径中符合和为 sum 的路径条数。结尾节点不需要为叶子节点。

 

二、解答

  1、思路

    方法一、

      采用递归的方法。

      首先求从 根节点开始的路径满足和为 sum 的条数;

      其次求从 根的左孩子节点开始的路径满足和为 sum 的条数;

      最终求从 根的右孩子节点开始的路径满足和为 sum 的条数;

    public int pathSum(TreeNode root, int sum) 
        if(root == null)
            return 0;
        
        int rootLeading = pathSumFrom(root, sum);
        int leftPathLeading = pathSum(root.left, sum);
        int rightPathLeading = pathSum(root.right, sum);
        
        return rootLeading + leftPathLeading + rightPathLeading;
    
    
    private int pathSumFrom(TreeNode root, int sum) 
		if(root == null)
			return 0;
		
		return (root.val == sum ? 1 : 0) 
				+ pathSumFrom(root.left, sum - root.val)
				+ pathSumFrom(root.right, sum - root.val);
	

  

 

以上是关于437. Path Sum III的主要内容,如果未能解决你的问题,请参考以下文章

437. Path Sum III

437. Path Sum III

437. Path Sum III

437. Path Sum III

437. Path Sum III

刷题437. Path Sum III