【Python 专题】数据结构 树

  • LeetCode 题目
    • 104. 二叉树的最大深度(gif 图解)
      • 方法一:后序遍历(DFS)
      • 方法二:层序遍历(BFS)
    • 872. 叶子相似的树(DFS 遍历)
    • 1448. 统计二叉树中好节点的数目(DFS 遍历)
    • 437. 路径总和 III(前缀和 + DFS 回溯)
    • 1372. 二叉树中的最长交错路径(DFS)
    • 236. 二叉树的最近公共祖先(DFS)(gif 图解)
    • 199. 二叉树的右视图(BFS)
    • 1161. 最大层内元素和(BFS)
    • 700. 二叉搜索树中的搜索(DFS)
    • 450. 删除二叉搜索树中的节点(DFS)

LeetCode 题目

树的遍历 方式总体分为两类:深度优先搜索(DFS)、广度优先搜索(BFS)。

  • 常见 DFS :先序遍历、中序遍历、后序遍历。
  • 常见 BFS :层序遍历(即按层遍历)。

104. 二叉树的最大深度(gif 图解)

给定一个二叉树 root,返回其最大深度。

二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。

在这里插入图片描述

方法一:后序遍历(DFS)

思路

  • 递归定义二叉树的最大深度 = max(左子树的最大深度, 右子树的最大深度) + 1 (即当前节点本身)
  • 递归基

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

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

相关文章

Linux下基本指令(4)

Linux权限的概念 Linux下有两种用户:超级用户(root)、普通用户。 超级用户:可以再linux系统下做任何事情,不受限制 普通用户:在linux下做有限的事情。 超级用户的命令提示符是“#”,普通用户…

ubuntu部署小笔记-采坑

ubuntu部署小笔记 搭建前端控制端后端前端nginx反向代理使用ubuntu部署nextjs项目问题一 如何访问端口号配置后台运行该进程pm2 问题二 包体过大生产环境下所需文件 问题三 部署在vercel时出现的问题需要魔法访问后端api时,必须使用https协议电脑端访问正常&#xf…

【联盛德 W803-Pico 试用】简介、工程测试

【联盛德 W803-Pico 试用】简介、工程测试 本文介绍了联盛德微电子 W803-Pico 开发板的基本信息、环境搭建、工程测试等内容。简介包含开发板功能、主控参数及特点、开发板原理图等信息,工程测试包括 Blink、串口打印等方案的演示。 活动详情:联盛德问答…

cursor使用记录

一、如何查看自己登录的是哪个账号 操作路径:Cursor -- 首选项 -- Cursor Setting (有快捷键) 二、状态修改为竖排(默认是横排) 默认如图展示,想要像vscode、idea等等在左侧竖着展示 操作路径&#xff1…

gitlab 解决双重认证无法登录remote: HTTP Basic: Access denied.

问题:gitlab开启了双因素认证 如进行了 OAuth configuration 在进行git操作时如下提示 remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead o…

C语言基础学习指南:从零入门到实战应用——适合零基础学习者与进阶巩固

目录 一、C语言概述与开发环境搭建 二、核心语法与数据类型 三、控制结构与运算符 四、函数与模块化编程 五、指针与内存管理 六、实践建议与资源推荐 结语 一、C语言概述与开发环境搭建 C语言是一种高效、灵活的通用编程语言,广泛应用于系统开发、嵌入式系…

C# 委托——lambda

lambda表达式不简化写起来和匿名函数很像,而匿名函数通常赋值给委托,通过委托进行调用。以下我们对lambda和委托的基本规则与使用进行整理,同时为了加深理解和记忆,我们整理了委托是如何一步步演化到lambda。 1. 委托 委托是一个…

【每日论文】TESS 2: A Large-Scale Generalist Diffusion Language Model

下载PDF或阅读论文,请点击:LlamaFactory - huggingface daily paper - 每日论文解读 | LlamaFactory | LlamaFactory 摘要 我们推出了TESS 2,这是一种通用的指令跟随扩散语言模型,其性能优于当代的指令调整扩散模型,有…

conda 配置源

无论是Anaconda vs Miniconda vs Miniforge 中的哪个,只要使用conda就涉及源,换源的目的是为了加速包的获取 修改配置文件 通过修改用户目录下的 .condarc 文件来使用 不同系统下的 .condarc 目录如下: Linux: ${HOME}/.condarcmacOS: ${…

AI大模型发展对语音直播交友系统源码开发搭建的影响

近年来,AI大模型技术突飞猛进,为语音直播交友系统的源码开发搭建带来了深远影响。本文将从技术发展层面,探讨AI大模型如何赋能语音直播交友系统,并分析其对开发流程、功能实现和用户体验等方面带来的变革。 一、技术赋能&#xff…

C++面试题,TCP和UDP方面(1)

个人主页 : 个人主页 个人专栏 : 《数据结构》 《C语言》《C》《Linux》《网络》 《redis学习笔记》 文章目录 前言TCP和UDP的区别UDP如何实现可靠TCP滑动窗口原理TCP流量控制TCP超时重传总结 前言 这是个人总结的C方向的面试题,TCP和UDP方面&#xff0…

Huatuo热更新--如何使用

在安装完huatuo热更新插件后就要开始学习如何使用了。 1.创建主框渐Main 新建文件夹Main(可自定义),然后按下图创建文件,注意名称与文件夹名称保持一致 然后新建场景(Init场景),添加3个空物体…

Springboot + Ollama + IDEA + DeepSeek 搭建本地deepseek简单调用示例

1. 版本说明 springboot 版本 3.3.8 Java 版本 17 spring-ai 版本 1.0.0-M5 deepseek 模型 deepseek-r1:7b 需要注意一下Ollama的使用版本: 2. springboot项目搭建 可以集成在自己的项目里,也可以到 spring.io 生成一个项目 生成的话,如下…

如何在 macOS 上配置 MySQL 环境变量

如何在 macOS 上配置 MySQL 环境变量 步骤 1: 查找 MySQL 安装路径 打开终端,使用以下命令查找 mysql 的可执行文件路径: which mysql如果该命令没有返回结果,可以使用 find 命令: sudo find / -name "mysql" 2>/de…

Unity Excel导表工具转Lua文件

思路介绍 借助EPPlus读取Excel文件中的配置数据,根据指定的不同类型的数据配置规则来解析成对应的代码文本,将解析出的字符串内容写入到XXX.lua.txt文件中即可 EPPlus常用API //命名空间 using OfficeOpenXml;//Excel文件路径 var fileExcel new File…

【vue项目中如何实现一段文字跑马灯效果】

在Vue项目中实现一段文字跑马灯效果,可以通过多种方式实现,以下是几种常见的方法: 方法一:使用CSS动画和Vue数据绑定 这种方法通过CSS动画实现文字的滚动效果,并结合Vue的数据绑定动态更新文本内容。 步骤&#xff…

AcWing走迷宫-最短路问题-BFS求解

题目描述 给定一个 n * m 的二维整数数组,用来表示一个迷宫,数组中只包含 0 或 1,其中 0 表示可以走的路,1 表示不可通过的墙壁。 最初,有一个人位于左上角 (1, 1) 处,已知该人每次可以向上、下、左、右任…

go 错误处理 error

普通错误处理 // 包路径 package mainimport ("errors""fmt" )func sqrt(f1, f2 float64) (float64, error) {if f2 < 0 {return 0, errors.New("error: f2 < 0")}return f1 / f2, nil }func sqrt1(f1, f2 float64) {if re, err : sqrt(f…

MCU Bootloader具备什么条件才能跳转到APP程序

在MCU系统中&#xff0c;BootLoader&#xff08;Boot&#xff09;跳转到应用程序&#xff08;APP&#xff09;的条件通常由硬件和软件协同控制&#xff0c;核心逻辑是确保APP的完整性和合法性。以下是关键条件及流程&#xff1a; 1. 硬件启动模式选择 BOOT引脚电平&#xff1a…

LeeCode题库第二十八题

28.找出字符串第一个匹配项的下标 项目场景&#xff1a; 给你两个字符串 haystack 和 needle &#xff0c;请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标&#xff08;下标从 0 开始&#xff09;。如果 needle 不是 haystack 的一部分&#xff0c;则返回 …