程序媛詹妮弗
终身学习

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.

Note: A leaf is a node with no children.

Example:

Given the below binary tree and sum = 22,

      5
     / \
    4   8
   /   / \
  11  13  4
 /  \      \
7    2      1

return true, as there exist a root-to-leaf path 5->4->11->2 which sum is 22.

 

题意:

给定二叉树和一个值,判断从根到叶是否存在一条路径,其路径和等于该值。

 

思路:

dfs

 

代码:

 1 class Solution {
 2     public boolean hasPathSum(TreeNode root, int sum) {
 3         if(root == null) return false;
 4         
 5         if(root.left== null && root.right== null) 
 6             return root.val == sum; 
 7         
 8         if(hasPathSum(root.left, sum - root.val))
 9             return true;
10         if(hasPathSum(root.right, sum - root.val))
11             return true;
12         
13         return false;           
14     }     
15 }

 

posted on 2018-06-12 07:35  程序媛詹妮弗  阅读(122)  评论(0编辑  收藏  举报