【LeetCode面试经典150题】112. 路经总和

一、题目

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

二、思路

  1. dfs,每条路径上每走过一个结点就减去targetSum,直到叶节点,如果走完完整路径后targetSum正好为0则说明则说明满足题意,此时返回true即可,见解法一

三、解法

解法一

java 复制代码
class Solution {
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if (root == null) {
            return false;
        }
        targetSum -= root.val;
        if (root.left == null && root.right == null) {
            return targetSum == 0;
        }
        return hasPathSum(root.left, targetSum)
                || hasPathSum(root.right, targetSum);
    }
}
相关推荐
菜鸟江多多7 分钟前
32x32热成像高斯滤波图像处理
图像处理·单片机·算法
阳洞洞17 分钟前
二叉树的层序遍历
数据结构·算法·leetcode·二叉树遍历·广度优先搜索
今天也要早睡早起19 分钟前
代码随想录算法训练营Day32| 完全背包问题(二维数组 & 滚动数组)、LeetCode 518 零钱兑换 II、377 组合总数 IV、爬楼梯(进阶)
数据结构·c++·算法·leetcode·动态规划·完全背包
火车叼位1 小时前
初中生也能懂的贝叶斯定理:拆解一个改变世界的公式
人工智能·数学·算法
ChoSeitaku1 小时前
NO.66十六届蓝桥杯备战|基础算法-贪心-区间问题|凌乱的yyy|Rader Installation|Sunscreen|牛栏预定(C++)
c++·算法·蓝桥杯
用手码出世界1 小时前
二叉树——队列bfs专题
数据结构·算法·宽度优先
OneQ6661 小时前
C++自学笔记---指针在数组遍历中的应用
c++·笔记·算法
EnigmaCoder1 小时前
蓝桥杯刷题周计划(第四周)
c++·算法·蓝桥杯
绿水毛怪.1 小时前
蓝桥杯基础算法-字符串与集合
算法·职场和发展·蓝桥杯
悄悄敲敲敲2 小时前
C++第14届蓝桥杯b组学习笔记
c++·学习·算法·蓝桥杯