题解 | #二叉树中和为某一值的路径(一)#
二叉树中和为某一值的路径(一)
https://www.nowcoder.com/practice/508378c0823c423baa723ce448cbfd0c
import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = null; * public TreeNode(int val) { * this.val = val; * } * } */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param root TreeNode类 * @param sum int整型 * @return bool布尔型 */ public boolean hasPathSum (TreeNode root, int sum) { // write code here // 解题思路:采用递归思想 // 第一个树求叶子节点之和为sum // 那么从它的左节点或右节点出发,求叶子节点之和就为sum-root.val if (root == null) { return false; } int val = root.val; if (val == sum && root.left == null && root.right == null) { return true; } boolean r1 = hasPathSum ( root.left, sum - val); boolean r2 = hasPathSum ( root.right, sum - val); return r1 | r2; } }