【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)。

三、官方解法

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

四、总结

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

相关推荐
Darkwanderor3 小时前
什么数据量适合用什么算法
c++·算法
zc.ovo4 小时前
河北师范大学2026校赛题解(A,E,I)
c++·算法
py有趣4 小时前
力扣热门100题之环形链表
算法·leetcode·链表
py有趣4 小时前
力扣热门100题之回文链表
算法·leetcode·链表
programhelp_5 小时前
SIG 2026 Quant / Susquehanna OA 全攻略
人工智能·机器学习·面试·职场和发展·数据分析
测试19985 小时前
使用Python自动化生成接口测试用例
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·接口测试
月落归舟6 小时前
帮你从算法的角度来认识二叉树---(二)
算法·二叉树
SilentSlot7 小时前
【数据结构】Hash
数据结构·算法·哈希算法
样例过了就是过了8 小时前
LeetCode热题100 柱状图中最大的矩形
数据结构·c++·算法·leetcode