当前位置: 首页 > news >正文

待做-待补充-每个节点做事,时间,以及与角度的关系

文章目录

  • 纲领
    • 1.是否可以通过遍历一遍二叉树得到答案
    • 2.是否可以通过两颗子树相同问题的答案推导出树的答案(形式为递归)
      • 无论哪种思维模式,都需要思考:单独一个二叉树节点,它需要做什么事情?需要在什么时候做
  • 后序
    • 判断问题是否和子树相关,如果相关,就要给函数设置合理的定义和返回值,在后序位置写代码。
      • 子树相同问题 推导
      • 子树不同问题 遍历
  • 红黑树应用场景限制
  • 构造对比
    • 1008
    • 105
  • 什么是二叉树遍历
    • 递归遍历
      • 1.前序遍历 = 进入节点时
      • 2.中序遍历 = 遍历完左子树回到节点。此操作需要等到所有左树节点做完后才会做
      • 3.后序遍历 = 遍历完左右子树回到节点。左右子树的所有节点都做完操作后,回到当前节点才会做此操作 = 离开节点
  • 遍历要点
    • 1.每个节点做什么
    • 2.在什么时间做
  • 节点时机的区别
    • 897. 递增顺序搜索树
    • 144. 二叉树的前序遍历
    • 226. 翻转二叉树
  • 待做
    • 13 106. 从中序与后序遍历序列构造二叉树*
    • 15 331. 验证二叉树的前序序列化*
  • 为什么不能优化
    • 572. 另一棵树的子树
    • 1367. 二叉树中的列表
  • 推导是一类特殊关系
  • 推导公式

纲领

1.是否可以通过遍历一遍二叉树得到答案

2.是否可以通过两颗子树相同问题的答案推导出树的答案(形式为递归)

无论哪种思维模式,都需要思考:单独一个二叉树节点,它需要做什么事情?需要在什么时候做

后序

判断问题是否和子树相关,如果相关,就要给函数设置合理的定义和返回值,在后序位置写代码。

子树相同问题 推导

子树不同问题 遍历

红黑树应用场景限制

红黑树(自平衡BST(自平衡(由n个节点构建子树,保证子树高度相差<=1(Δ(h(sub)<=1便可保证整树是最小高度(因为整树高度=子树高度+1))))))
RBT作为数据结构,其增删改查可谓达到了完美,但即便如此,其应用场景也有限制。请说出合适的场景。

构造对比

1008

105

什么是二叉树遍历

二叉树遍历 = 前中后序遍历
= 递归遍历 + 3种时间节点
递归遍历会依次遍历到每个节点。
而前中后序则是在递归遍历的基础上选择操作发生的时间。

递归遍历

递归遍历的顺序是固定的。也就是每个节点的遍历顺序是固定的。
没错,也许你会认为是有三种遍历顺序,但其实只有一种,只决定于递归。

1.前序遍历 = 进入节点时

2.中序遍历 = 遍历完左子树回到节点。此操作需要等到所有左树节点做完后才会做

3.后序遍历 = 遍历完左右子树回到节点。左右子树的所有节点都做完操作后,回到当前节点才会做此操作 = 离开节点

遍历要点

1.每个节点做什么

2.在什么时间做

节点时机的区别

897. 递增顺序搜索树

144. 二叉树的前序遍历

226. 翻转二叉树

待做

13 106. 从中序与后序遍历序列构造二叉树*

15 331. 验证二叉树的前序序列化*

为什么不能优化

572. 另一棵树的子树

1367. 二叉树中的列表

遍历推导,不能优化

推导是一类特殊关系

树的问题可以由子树同样的问题推导而来

推导公式

二叉树分解算法的核心思维是树间的推导
1.f(x) == f(x) + 1;
http://www.lryc.cn/news/258150.html

相关文章:

  • 液态二氧化碳储存罐远程无线监测系统
  • kafka学习笔记--安装部署、简单操作
  • UE4 材质实现Glitch效果
  • oracle实验2023-12-8--触发器
  • 【Python百宝箱】贝叶斯统计的魅力:从PyMC3到ArviZ,探索数据背后的不确定性
  • Knowledge Graph知识图谱—8. Web Ontology Language (OWL)
  • 排序算法——冒泡排序
  • 边缘智能网关如何应对环境污染难题
  • uniapp定时器的应用
  • Docker中安装Oracle10g和oracle增删改查
  • 推荐算法:HNSW【推荐出与用户搜索的类似的/用户感兴趣的商品】
  • C++ //例3.14 找出100~200间的全部素数。
  • 虚幻学习笔记11—C++结构体、枚举与蓝图的通信
  • 【android开发-19】android中内容提供者contentProvider用法讲解
  • 浅谈排序——快速排序(最常用的排序)
  • Springboot项目实现简单的文件服务器,实现文件上传+图片及文件回显
  • 5V低压步进电机驱动芯片GC6150,应用于摄像机,机器人 医疗器械等产品中。具有低噪声、低振动的特点
  • 3D Web轻量引擎HOOPS Communicator如何实现对大模型的渲染支持?
  • 『 Linux 』进程地址空间概念
  • PySpark大数据处理详细教程
  • 三(五)ts非基础类型(对象)
  • HeartBeat监控Redis状态
  • FairGuard无缝兼容小米澎湃OS、ColorOS 14 、鸿蒙4!
  • 【Copilot】Edge浏览器的copilot消失了怎么办
  • C++入门【6-C++ 修饰符类型】
  • STP笔记总结
  • Qt开发 之 记一次安装 Qt5.12.12 安卓环境的失败案例
  • 基于SpringBoot的就业信息管理系统设计与实现(源码+数据库+文档)
  • Java面试整理(四)Java IO流
  • 《安富莱嵌入式周报》第328期:自主微型机器人,火星探测器发射前失误故障分析,微软推出12周24期免费AI课程,炫酷3D LED点阵设计,MDK5.39发布