112路径总和
程序员文章站
2022-05-20 19:09:57
...
题目描述
给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和。
说明: 叶子节点是指没有子节点的节点。
思路分析
进行分析,递归终止的条件是什么?一次递归中要进行什么操作?递归想要返回什么信息?
终止条件:结点为空
递归中操作:sum减去当前结点值,当sum为0且当前为叶子节点返回true
递归返回信息:左右子树中是否有符合条件的路径
代码实现
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null) {
return false;
}
sum -= root.val;
if (sum == 0 && root.left == null && root.right == null) {
return true;
}
return hasPathSum(root.left, sum) ||
hasPathSum(root.right, sum);
}
上一篇: LeetCode 61. 旋转链表
下一篇: 107二叉树的层次遍历II