LeetCode ---- 112、路径总和
程序员文章站
2022-05-20 16:13:29
...
题目链接
思路:
遍历时,分别遍历每一个节点的左右子树。遍历到每一个节点,用剩余的和减去当前节点的值,接着继续向下遍历其左右子树,直到遍历到叶子节点时,判断此时剩余和减去叶节点值是否为0,若为0,则说明存在这样一条路径。
public boolean hasPathSum(TreeNode root, int sum) {
if (root == null) {
return false;
}
if (root.left == null && root.right == null) {
return sum - root.val == 0;
}
return hasPathSum(root.left, sum - root.val) ||
hasPathSum(root.right, sum - root.val);
}
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) { val = x; }
}
上一篇: LeetCode 112 路径总和
下一篇: 算法入门练习No.1:位数(digit)
推荐阅读
-
[leetcode]不同路径三连击~
-
【leetcode 简单】 第一百五十题 两个列表的最小索引总和
-
荐 LeetCode 120. 三角形最小路径和 | Python
-
【每日一道算法题】Leetcode之longest-increasing-path-in-a-matrix矩阵中的最长递增路径问题 Java dfs+记忆化
-
#leetcode刷题之路40-组合总和 II
-
荐 LeetCode 112. 路径总和 | Python
-
动态规划_leetcode.64.最小路径和
-
LeetCode 63. 不同路径 II
-
[leetcode]63. 不同路径 II
-
LeetCode——63.不同路径 II