【LeetCode算法】第112题:路径总和

目录

一、题目描述

二、初次解答

三、官方解法

四、总结


一、题目描述

二、初次解答

**1. 思路:二叉树先序遍历。**首先访问根节点,若根节点是叶子节点并且值等于目标值,则返回true,否则递归访问左子树和右子树,只要左子树和右子树的返回值有一个为true即可。

2. 代码:

cpp 复制代码
bool hasPathSum(struct TreeNode* root, int targetSum) {
    if(!root)
        return false;
    if(!root->left && !root->right){
        return root->val == targetSum;
    }
    return hasPathSum(root->left, targetSum-root->val) || hasPathSum(root->right, targetSum-root->val);
}

**3. 优点:**仅遍历一遍,时间复杂度为O(n)。

**4. 缺点:**利用了递归,空间复杂度为O(H)。

三、官方解法

官方解法一需要手动维护队列,空间开销更大;官方解法二与上述解法相同。

四、总结

针对二叉树的路径问题,利用二叉树先序遍历的递归方法可以轻松解决。

相关推荐
程序员清风9 小时前
算法题中的边界条件、测试与调试
开发语言·算法·kotlin
炘爚10 小时前
数据结构算法总结
数据结构·python·算法
Dageno_AI10 小时前
ChatGPT 不再引用 Reddit 之后,还值得在 Reddit 上做 AI 可见度吗?
算法
hetao173383710 小时前
2026-10-25 hetao1733837 的刷题记录
c++·算法
Jsundoku10 小时前
第七章 机器学习 -- 其他经典算法
人工智能·算法·机器学习
进击的丸子11 小时前
基于 ArcFace SDK 的跨平台人脸特征值下发、同步以及存储方案
后端·算法·代码规范
见叶之秋11 小时前
【C++】红与黑的边界:红黑树从插入到自检
数据结构·c++·算法·面试
考研保研资料分享11 小时前
2023历史学跨保山大马理论:两轮笔面试、课程论文与方向取舍
面试·职场和发展
一条闲鱼_mytube12 小时前
分布式 ID 生成方案:雪花算法与号段模式
分布式·算法·wpf
Msir_Modern12 小时前
Noita 元胞沙盒笔记
算法·unity·c#·游戏引擎·元胞自动机