重温算法之路径总和

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 关于二叉树的题目,深度优先和广度优先是最佳首选,其次就是利用hash或者栈的特点结合,也可以快速解决问题,另外还是没有找到之前动态二叉树的网站,估计已经没了,不然更加容易理解。

微信截图_20220531173728.png


一.题目介绍


1.题目来源


链接:LeetCode


2.题目


给你二叉树的根节点root和一个表示目标和的整数targetSum。判断该树中是否存在根节点到叶子节点的路径,这条路径上所有节点值相加等于目标和targetSum。如果存在,返回true;否则,返回false。叶子节点是指没有子节点的节点。

微信截图_20220531195639.png


二.具体实现


1.实现思路


思路就是深度优先,当树不为空时,先找到叶子节点,然后往左子树搜索再往右子树搜索,如果目标值与节点数之差为0则代表找到了符合条件的即存在,反子则不存在。


2.实现代码


1)自己的实现方式

public boolean hasPathSum(TreeNode root, int targetSum) {
    if (root == null) {
        return false;
    }
    return dfs(root, targetSum);
}
private boolean dfs(TreeNode root, int num) {
    //递归的边界 节点为null
    if (root.left == null && root.right == null){
        return (num - root.val) == 0;
    }
    //往左子树搜索
    if (root.left != null && dfs(root.left,num - root.val)){
        return true;
    }
    //往右子树搜索
    if (root.right != null && dfs(root.right,num - root.val)){
        return true;
    }
    return false;
}
复制代码


2)题友的实现方式


将其转换成求解从root.left或者root.right到叶子节点是否存在路径和为sum-root.val的路径,即 hasPathSum(root.left, sum - root.val) || hasPathSum(root.right, sum - root.val)

微信截图_20220531195720.png


3.运行结果

微信截图_20220531195758.png

微信截图_20220531195834.png


三.题后思考


关于二叉树的题目,深度优先和广度优先是最佳首选,其次就是利用hash或者栈的特点结合,也可以快速解决问题,另外还是没有找到之前动态二叉树的网站,估计已经没了,不然更加容易理解。

目录
相关文章
|
10月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
386 3
|
9月前
|
机器学习/深度学习 算法 C++
【DFS/回溯算法】2016年蓝桥杯真题之路径之谜详解
题目要求根据城堡北墙和西墙箭靶上的箭数,推断骑士从西北角到东南角的唯一路径。每步移动时向正北和正西各射一箭,同一格不重复经过。通过DFS回溯模拟“拔箭”过程,验证路径合法性。已知箭数约束路径唯一,最终按编号输出行走顺序。
|
11月前
|
算法 机器人 定位技术
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
【VRPTW】基于matlab秃鹰算法BES求解带时间窗的骑手外卖配送路径规划问题(目标函数:最优路径成本 含服务客户数量 服务时间 载量 路径长度)(Matlab代码实现)
303 0
|
10月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
617 2
|
10月前
|
机器学习/深度学习 传感器 算法
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
基于全局路径的无人地面车辆的横向避让路径规划研究[蚂蚁算法求解](Matlab代码实现)
399 8
|
10月前
|
算法 数据挖掘 区块链
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
基于遗传算法的多式联运车辆路径网络优优化研究(Matlab代码实现)
285 2
|
10月前
|
机器学习/深度学习 负载均衡 算法
【卡车和无人机协同配送路径优化】遗传算法求解利用一辆卡车和两架无人机配合,将小包裹递送给随机分布的客户,以使所有站点都由卡车或无人机递送一次后返回起始位置(中转站)研究(Matlab代码实现)
【卡车和无人机协同配送路径优化】遗传算法求解利用一辆卡车和两架无人机配合,将小包裹递送给随机分布的客户,以使所有站点都由卡车或无人机递送一次后返回起始位置(中转站)研究(Matlab代码实现)
528 7
|
10月前
|
存储 算法 数据可视化
基于禁忌搜索算法的TSP问题最优路径搜索matlab仿真
本程序基于禁忌搜索算法解决旅行商问题(TSP),旨在寻找访问多个城市的最短路径。使用 MATLAB 2022A 编写,包含城市坐标生成、路径优化及结果可视化功能。通过禁忌列表、禁忌长度与藐视准则等机制,提升搜索效率与解的质量,适用于物流配送、路径规划等场景。
|
10月前
|
机器学习/深度学习 传感器 算法
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
基于matlab瞬态三角哈里斯鹰算法TTHHO多无人机协同集群避障路径规划(目标函数:最低成本:路径、高度、威胁、转角)(Matlab代码实现)
323 1
|
10月前
|
算法 数据可视化 异构计算
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
【车辆路径问题VRPTW】基于北极海鹦优化(APO)算法求解带时间窗的车辆路径问题VRPTW研究(Matlab代码实现)
459 0