112. Path Sum

来源:互联网 发布:企业数据备份管理制度 编辑:程序博客网 时间:2024/05/29 02:03

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 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.


是否存在一条二叉树的路径和等于给定值:




public class Solution {    int sumn=0;    int value=0;    public boolean hasPathSum(TreeNode root, int sum) {        sumn=sum;        if(root==null) return false;        return preorder(root);    }    public boolean preorder(TreeNode root){        value+=root.val;        boolean b=false;        if(root.left==null&&root.right==null)             {if(value==sumn) b= true;             //到达叶子节点                }        else if(root.left==null&&root.right!=null)            b=  preorder(root.right);             //遍历右子树        else if (root.left!=null&&root.right==null)            b= preorder(root.left);               //遍历左子树        else b= preorder(root.left)||preorder(root.right);  //继续遍历左右子树        value-=root.val;   //查找其他路径时把这个节点的值减去,相当于此步不符合要求,回退到上一步        return b;             }}


0 0
原创粉丝点击