1、链接:path-sum
来源:牛客网
热度指数:5068时间限制:1秒空间限制:32768K
Given a binary tree and a sum, determine if the tree has a root-to-leaf path such that adding up all the values along the path equals the given sum.
For example:
Given the below binary tree andsum = 22,
5
/ \
4 8
/ / \
11 13 4
/ \ \
7 2 1
return true, as there exist a root-to-leaf path5->4->11->2which sum is 22.
2、思路:先序遍历,经过叶子结点时判断是否满足要求;
3、代码:
public class PathSum {
boolean isFound = false;
public boolean hasPathSum(TreeNode root, int sum) {
if(root == null){
return false;
}
preOder(root, sum, 0);
return isFound;
}
private void preOder(TreeNode root, int sum, int path_sum) {
if(root == null)
return ;
path_sum += root.val;
if(root.left == null && root.right == null){
if(sum == path_sum){
isFound = true;
}
}
preOder(root.left, sum, path_sum);
preOder(root.right, sum, path_sum);
}
}