Leetcode 112. 路径总和

题目链接:https://leetcode.cn/problems/path-sum/description/

思路

  • 递归,先序遍历二叉树,每遍历一个节点便减去当前存储值(targetSum = targetSum - root.val);
  • 当到达某个节点等于targetSum (targetSum == root.val),判断该节点是否为叶子节点(root.left == null && root.right == null),如果是那么返回true;
  • 如果该节点不满足targetSum,那么递归遍历左子树和右子树(hasPathSum(root.left,targetSum - root.val) || hasPathSum(root.right,targetSum - root.val)),任意一个返回true就成功。

代码实现

java 复制代码
class Solution {
    public boolean hasPathSum(TreeNode root, int targetSum) {
        if(root==null){ //空节点
            return false;
        }
        if(root.left == null && root.right == null){ // 该节点为叶子节点
            return targetSum == root.val; //相等则为true
        }
        return hasPathSum(root.left,targetSum - root.val) || hasPathSum(root.right,targetSum - root.val);
    }
}
相关推荐
无限进步_5 小时前
【C++】单词反转算法详解:原地操作与边界处理
java·开发语言·c++·git·算法·github·visual studio
泯泷5 小时前
从零构建寄存器式 JSVMP:实战教程导读
前端·javascript·算法
NGC_66115 小时前
值传递和引用传递辨析
算法
寒月小酒5 小时前
3.21 OJ
算法·深度优先
Book思议-5 小时前
【数据结构考研真题】链表大题
c语言·数据结构·考研·算法·链表·408·计算机考研
m0_528174455 小时前
ZLibrary反爬机制概述
开发语言·c++·算法
你这个代码我看不懂5 小时前
引用计数法存在的问题
java·jvm·算法
yunyun321235 小时前
嵌入式C++驱动开发
开发语言·c++·算法
Storynone5 小时前
【Day29】LeetCode:62. 不同路径,63. 不同路径 II,343. 整数拆分,96. 不同的二叉搜索树
python·算法·leetcode
小O的算法实验室5 小时前
2025年SEVC SCI2区,基于强化学习辅助粒子群算法的污水处理厂进水流量估算及出水调度问题研究,深度解析+性能实测
算法·论文复现·智能算法·智能算法改进