【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);
    }
}
相关推荐
星火开发设计4 小时前
枚举类 enum class:强类型枚举的优势
linux·开发语言·c++·学习·算法·知识
嘴贱欠吻!9 小时前
Flutter鸿蒙开发指南(七):轮播图搜索框和导航栏
算法·flutter·图搜索算法
张祥64228890410 小时前
误差理论与测量平差基础笔记十
笔记·算法·机器学习
踩坑记录10 小时前
leetcode hot100 2.两数相加 链表 medium
leetcode·链表
qq_1927798710 小时前
C++模块化编程指南
开发语言·c++·算法
cici1587412 小时前
大规模MIMO系统中Alamouti预编码的QPSK复用性能MATLAB仿真
算法·matlab·预编码算法
历程里程碑12 小时前
滑动窗口---- 无重复字符的最长子串
java·数据结构·c++·python·算法·leetcode·django
2501_9403152613 小时前
航电oj:首字母变大写
开发语言·c++·算法
CodeByV14 小时前
【算法题】多源BFS
算法
TracyCoder12314 小时前
LeetCode Hot100(18/100)——160. 相交链表
算法·leetcode