Given a binary tree and a sum, determine if the tree has a root-to-leaf path such this 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 / / / 4 / \ 7 2 1
Idea: Solve the path of the binary tree and whether it satisfies sum. One thing to consider is a negative number, and if it's 0, it's not going to end, thought it might be the following and 0.
The problem is not difficult, but there are some small points to note. The specific code is as follows:
/** * Definition for a binary tree node. * public class TreeNode {* int val, * TreeNode left, * TreeNode right; * TreeNode (int x) {val = x;} *} */public class Solution {public Boolean haspathsum (TreeNode root, int sum) { /** * Determines if the root node is empty and the value is greater than sum, yes FAL Se * Then determine if Val and sum are equal, if they are equal and root has no subtree. True * Inequality is recursive to determine if the left and right subtrees are equal to sum-val * /if (root = = null) {//Note that Val and sum sizes cannot be judged here because there is a negative return false; } if (root.val = = sum) { //NOTE: Because there is a negative number, the left and right subtrees are not empty and cannot be returned directly flase //There may be a value of 0 if (root.left = = null) of the subtree && root.right = = null) return true; } Less than return Haspathsum (root.left,sum-root.val) | | Haspathsum (Root.right,sum-root.val); }}
Copyright NOTICE: This article for Bo Master original article, without Bo Master permission not reproduced.
Leetcode 112.Path Sum (path and) ideas and methods for solving problems