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

三、官方解法

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

四、总结

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

相关推荐
梦想画家1 小时前
Apache AGE实战指南:从Cypher语法到核心图算法
算法·cypher·apache age
刀法如飞1 小时前
Go数组去重的20种实现方式,AI时代解决问题的不同思路
后端·算法·go
旖-旎2 小时前
深搜练习(N皇后)(10)
c++·算法·深度优先·力扣
Controller-Inversion3 小时前
322. 零钱兑换
算法
头发够用的程序员3 小时前
C++和Python面试经典算法汇总(一)
开发语言·c++·python·算法·容器·面试
淡海水3 小时前
【AI模型】模型量化技术详解
人工智能·算法·机器学习
炸膛坦客3 小时前
嵌入式 - 数据结构与算法:(1-1)数据结构 - 顺序表(Sequential List)
数据结构·算法·嵌入式
水龙吟啸3 小时前
数据结构与算法随机复习–Day1
数据结构·c++·算法
生成论实验室3 小时前
《事件关系阴阳博弈动力学:识势应势之道》第八篇:认知与反思关系——探索、定位与延续
人工智能·算法·架构·知识图谱·创业创新
YaraMemo4 小时前
一文带你区分全局最优解和帕累托最优解
算法·5g·信息与通信·信号处理