【Leetcode:257. 二叉树的所有路径 + 二叉树 + 递归 】

news2024/11/18 5:29:54

在这里插入图片描述

🚀 算法题 🚀

🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀
🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨
🌲 作者简介:硕风和炜,CSDN-Java领域优质创作者🏆,保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享💎💎💎
🌲 恭喜你发现一枚宝藏博主,赶快收入囊中吧🌻
🌲 人生如棋,我愿为卒,行动虽慢,可谁曾见我后退一步?🎯🎯

🚀 算法题 🚀

在这里插入图片描述
在这里插入图片描述

🍔 目录

    • 🚩 题目链接
    • ⛲ 题目描述
    • 🌟 求解思路&实现代码&运行结果
      • ⚡ 二叉树 + 递归
        • 🥦 求解思路
        • 🥦 实现代码
        • 🥦 运行结果
    • 💬 共勉

🚩 题目链接

  • 257. 二叉树的所有路径

⛲ 题目描述

给你一个二叉树的根节点 root ,按 任意顺序 ,返回所有从根节点到叶子节点的路径。

叶子节点 是指没有子节点的节点。

示例 1:

输入:root = [1,2,3,null,5]
输出:[“1->2->5”,“1->3”]
示例 2:

输入:root = [1]
输出:[“1”]

提示:

树中节点的数目在范围 [1, 100] 内
-100 <= Node.val <= 100

🌟 求解思路&实现代码&运行结果


⚡ 二叉树 + 递归

🥦 求解思路
  1. 在深度优先搜索遍历二叉树时,需要考虑当前的节点以及它的孩子节点。
    • 如果当前节点不是叶子节点,则在当前的路径末尾添加该节点,并继续递归遍历该节点的每一个孩子节点。
    • 如果当前节点是叶子节点,则在当前路径末尾添加该节点后我们就得到了一条从根节点到叶子节点的路径,将该路径加入到答案即可。
  2. 有了基本的思路,接下来我们就来通过代码来实现一下的解法。
🥦 实现代码
/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {


    public List<String> binaryTreePaths(TreeNode root) {
        List<String> res = new ArrayList<>();
        dfs(root, "", res);
        return res;
    }

    private void dfs(TreeNode root, String path, List<String> res) {
        //如果为空,直接返回
        if (root == null)
            return;
        //如果是叶子节点,说明找到了一条路径,把它加入到res中
        if (root.left == null && root.right == null) {
            res.add(path + root.val);
            return;
        }
        //如果不是叶子节点,在分别遍历他的左右子节点
        dfs(root.left, path + root.val + "->", res);
        dfs(root.right, path + root.val + "->", res);
    }


    
}
🥦 运行结果

在这里插入图片描述


💬 共勉

最后,我想和大家分享一句一直激励我的座右铭,希望可以与大家共勉!

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2133166.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

多语言文本检测系统源码分享

多语言文本检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer V…

中国水土保持能力防治数据集(1992-2019)

该数据集包括1992年至2019年中国每年的水土保持能力及其影响因子。这些数据是基于改进的RUSLE模型开发的&#xff0c;其中包含植被覆盖和管理(C)因子和降雨侵蚀率(R)因子作为重要的输入因子&#xff0c;针对不同区域进行了优化。 其中该数据集一共包含了9个数据它们分别是&…

【遍历二叉树】---先,中,后,层序遍历 及 先序建立整树

0.二叉树结点的链式存储结构 #include<stdio.h> #include<stdlib.h>typedef char TElemType;//树中元素基本类型为char类型#define bool int #define true 1 #define false 0//二叉树结点链式存储结构&#xff08;二叉链表&#xff09; typedef struct BiNode {TE…

java项目之基于springboot的贸易行业crm系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的基于springboot的贸易行业crm系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 基于sp…

GNSS多路径误差提取CMC和MPC

基本概念 伪距和载波相位观测值的多径误差并不相同&#xff0c;多径误差一般1-5米&#xff0c;最高可达10-20米。PPP利用伪距辅助模糊度固定&#xff0c;伪距质量不高多路径误差太大&#xff0c;会导致模糊度固定错。载波相位的多径误差小于四分之一波长。由于载波相位的多径误…

抢占AI营销新红利!枢纽云揭秘企业转型背后的成功路径

搜索作为用户获取信息的关键途径&#xff0c;正在经历一场具有划时代意义的变革&#xff0c;不断影响着用户的搜索行为习惯&#xff0c;还为品牌营销以及企业的数字化转型提供了良好契机。 从传统搜索到内容生态&#xff1a;品牌展现的新舞台 传统搜索引擎曾是互联网世界的绝对…

MQTT 协议概述

目录 一、概述二、协议模型1、组成部分2、客户端3、服务器 三、MATT 通信过程1、连接服务器2、订阅主题3、发布消息4、取消订阅5、断开连接 四、MQTT 数据包结构1、MQTT 固定头2、MQTT 可变头3. Payload消息体 五、示例演示 一、概述 MQTT&#xff08;Message Queuing Telemet…

乔拓云模板助力,微信小程序快速上线无需愁备案

想要快速打造并上线自己的微信小程序吗&#xff1f;乔拓云平台是您的不二之选&#xff01;无需担心复杂的备案流程&#xff0c;乔拓云提供免费服务&#xff0c;远程协助您轻松完成微信小程序的备案工作。 只需简单几步&#xff0c;您的小程序就能闪亮登场&#xff1a;首先&…

常见加密算法——哈希算法(MD)

文章目录 发现宝藏1.加密算法简介1.1 加密算法分类1.2 应用场景1.3 哈希算法的特点 2. 哈希算法的分类2.1 加密哈希算法2.2 非加密哈希算法2.3 其他常见哈希算法 3. MD53.1 MD5 简介3.2 MD5 Java 代码示例&#xff08;未加盐&#xff09;3.2 MD5 Python 代码示例&#xff08;未…

DroidBot: A Lightweight UI-Guided Test InputGenerator for Android论文学习

DroidBot就是之前用过的那个自动截图程序。那我很熟悉了&#xff0c;快速读完这篇论文。 brain默认使用深度优先探索&#xff0c;当然用户也可以使用自己的方法。 这玩意支持各种输入&#xff08;点击&#xff0c;滑动&#xff0c;输入文本&#xff09; 可以看到它会分辨当前页…

【Linux】探索进程控制奥秘,解锁高效实战技巧

目录 1.进程创建 1.1字符串常量为什么不可以修改&#xff1f; 1.2代码段和数据段到底是什么&#xff1f; 1.3.fork函数初识 1.4.fork函数返回值 1.5.写时拷贝&#xff1a; 1.6写时拷贝按需进行的原理&#xff08;与页表的权限有关&#xff09; 1.7.fork常规用法 2.进程…

跟着iMeta学做图 | 冲击图展示菌群随盐度的变化

本文代码已经上传至https://github.com/iMetaScience/iMetaPlot如果你使用本代码&#xff0c;请引用&#xff1a;Changchao Li. 2023. Destabilized microbial networks with distinct performances of abundant and rare biospheres in maintaining networks under increasing…

gen_server补充基础学习

学习gen_server的回调结构 gen_server:start_link(Name, Mod, InitArgs, Opts)这个调用是所有事物的起点。它 会创建一个名为Name的通用服务器&#xff0c;回调模块是Mod&#xff0c;Opts则控制通用服务器的行为。在这里可以指定消息记录、函数调试和其他行为。通用服务器通过…

基于QGIS 3.16.0 的OSM路网矢量范围裁剪实战-以湖南省为例

目录 前言 一、相关数据介绍 1、OMS路网数据 2、路网数据 3、路网图层属性 二、按省域范围进行路网裁剪 1、裁剪范围制定 2、空间裁剪 3、裁剪结果 三、总结 前言 改革开放特别是党的十八大以来&#xff0c;我国公路发展取得了举世瞩目的成就。国家高速公路网由“7 射…

ATECLOUD平台相比传统ATE测试有哪些独特的优势?

随着科技的飞速发展&#xff0c;在电子测量行业&#xff0c;自动化测试也逐渐取代了传统手动&#xff0c;市场上的大多数测试企业近几年都在进行自动化转型&#xff0c;而伴随着测试行业自动化、智能化的趋势&#xff0c;各类自动化测试系统也发展迅速&#xff0c;在众多ATE自动…

一种模式包含引流和复购 让你的私域电商平台腾飞!

在当今的商业环境中&#xff0c;一种名为“循环购”的创新商业模式正悄然兴起&#xff0c;它打破了传统消费观念&#xff0c;让“消费1000送2000&#xff0c;每日领钱&#xff0c;轻松提现”不再是遥不可及的梦想。很多人可能会问&#xff0c;这究竟是商家的慷慨解囊&#xff0…

多模态大模型-MiniCPM-V

1. 简介 本文主要探索如何在性能和效果之间的权衡&#xff0c;希望能在合适的性能下&#xff0c;模型效果有大幅的提升。主要贡献点有&#xff1a; 通过模型结构&#xff0c;数据&#xff0c;训练策略等优化&#xff0c;让MiniCPM-Lllama3-V 2.5[1]在OpenCompass评测上超过了…

03:手动可变电阻

可变电阻 1、电位器2、变阻器/数字电位器2.1&#xff1a;变阻器2.2&#xff1a;数字电位器 3、电位器锥度4、寄生电感/电容 1、电位器 如上图所示&#xff1a;将可变的电阻作为分压器&#xff0c;那么这种可变的电阻就是电位器。例如&#xff1a;将L1连接负极&#xff0c;L3连接…

SQLMAP windows10 安装记录

1.Windows系统下安装Sqlmap&#xff0c;需要安装python环境 python下载和安装 官方下载 https://www.python.org/downloads 建议直接下载安装版&#xff1a;installer 最后到这个界面正常是成功了&#xff0c;但也要校验一下 进入windows 命令窗口 正常输入你安装的python 版本…

OpenHarmony(鸿蒙南向开发)——轻量系统芯片移植指南(二)

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ OpenHarmony&#xff08;鸿蒙南向开发&#xff09;——轻量系统芯片移植指南(一) Op…