#yyds干货盘点# 解决剑指offer:二叉树中和为某一值的路径

Posted 97的风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 解决剑指offer:二叉树中和为某一值的路径相关的知识,希望对你有一定的参考价值。

1.简述:

描述

给定一个二叉树root和一个整数值 sum ,求该树有多少路径的的节点值之和等于 sum 。1.该题路径定义不需要从根节点开始,也不需要在叶子节点结束,但是一定是从父亲节点往下到孩子节点2.总节点数目为n3.保证最后返回的路径个数在整形范围内(即路径个数小于231-1)

数据范围:#yyds干货盘点#

#yyds干货盘点#

假如二叉树root为1,2,3,4,5,4,3,#,#,-1,sum=6,那么总共如下所示,有3条路径符合要求#yyds干货盘点#

示例1

输入:

1,2,3,4,5,4,3,#,#,-1,6

返回值:

3

说明:

如图所示,有3条路径符合

示例2

输入:

0,1,1

返回值:

2

示例3

输入:

1,#,2,#,3,3

返回值:

2

2.代码实现:

import java.util.*;
public class Solution
private int res = 0;
//dfs查询以某结点为根的路径数
private void dfs(TreeNode root, int sum)
if(root == null)
return;
//符合目标值
if(sum == root.val)
res++;
//进入子节点继续找
dfs(root.left, sum - root.val);
dfs(root.right, sum - root.val);

//dfs 以每个结点作为根查询路径
public int FindPath (TreeNode root, int sum)
//为空则返回
if(root == null)
return res;
//查询以某结点为根的路径数
dfs(root, sum);
//以其子结点为新根
FindPath(root.left, sum);
FindPath(root.right, sum);
return res;


以上是关于#yyds干货盘点# 解决剑指offer:二叉树中和为某一值的路径的主要内容,如果未能解决你的问题,请参考以下文章

#yyds干货盘点# 解决剑指offer:把二叉树打印成多行

#yyds干货盘点# 解决剑指offer: 判断是不是平衡二叉树

#yyds干货盘点# 解决剑指offer:重建二叉树

#yyds干货盘点# 解决剑指offer:二叉树中和为某一值的路径

#yyds干货盘点#剑指 Offer 07. 重建二叉树

#yyds干货盘点# 解决剑指offer:二叉搜索树的最近公共祖先