zl程序教程

您现在的位置是:首页 >  其他

当前栏目

LeetCode二叉树路径总和

LeetCode二叉树 路径 总和
2023-09-11 14:21:44 时间

路径之和

LeetCode题目来源

1.1 题目描述

给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径,这条路径上所有节点值相加等于目标和 targetSum 。如果存在,返回 true ;否则,返回 false 。

叶子节点 是指没有子节点的节点。

1.2 示例



2.1 解题

解题方法:递归进行计算

二叉树从上向下进行递归计算,每遍历一个节点,就用target-root.val。当叶子节点值等于最后一次target-root.val,则存在路径。

Java版解题

class Solution {
    public boolean hasPathSum(TreeNode root, int sum) {
        if (root == null) {
            return false;
        }
        if (root.left == null && root.right == null) {//遍历到叶子节点时,判断最后的target减去前面路径消耗的val等于节点的val
            return sum == root.val;
        }
        return hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val);//多条路径遍历二叉树
    }
}

解题结果

在这里插入图片描述