原题:#112_路径总和
- 递归
- 总思路:从根节点出发,每经过一个节点就用sum减去该节点的值,到达叶子节点时,判断sum是否为0
- 结束条件:当前节点为叶子节点,判断sum是否为0,然后返回
- 递归操作:sum减去当前节点的值,递归当前节点的所有孩子节点
- 返回值:只要左子树或右子树当中存在一条路径即返回为真
public boolean hasPathSum(TreeNode root, int sum) {
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null)
return false;
sum -= root.val;
if ((root.left == null) && (root.right == null))
return (sum == 0);
if (hasPathSum(root.left, sum))
return true;
if (hasPathSum(root.right, sum))
return true;
return false;
}
}