news 2026/8/26 18:00:21

二叉树的基本操作详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
二叉树的基本操作详解

二叉树的类由节点值,左子树和右子树组成

二叉树的基本方法-四种遍历

1.先序遍历 - 根左右 - ABDEHCFG 先序遍历的第一个节点一定是根结点(没有父节点的节点)

2.中序遍历 - 左根右 - DBEHAFCG 中序遍历根节点左边全是左子树中序遍历的结果,根节点的右边一定是右子树中序遍历的结果

3.后序遍历 - 左右根 - DHEBFGCA 后序遍历的最后一个节点一定是根节点

4.层序遍历 -

二叉树遍历的还原(后序+先序 不能还原)

1.后序+中序

1)先找出后序遍历的最后一个节点,该节点是根节点A

2)再把根节点对应到中序遍历结果中, 根节点左边的就是左子树中序遍历的结果DBEH,根节点右边的就是右子树中序遍历的结果FCG

3)把左子树DBEH对应到后序遍历中去,左子树的后序遍历就是DHEB,中序右子树FCG对应的后序右子树遍历就是FGC,再依次类推,B就是左子树的根节点,C就是右子树的根节点

2.先序+中序

1)先找出先序遍历的最前面的一个节点就收根节点A,

2) 再把根节点A对应的中序遍历的结果中,根节点A左边就是左子树中序遍历的结果,根节点右边就是右子树中序遍历的结果,

3)再把中序遍历的左右子树在先序遍历结果里对应,BDEH就是左子树先序遍历的,CFG就是右子树先序遍历的,在以此类推,B就是左子树的根节点,C就是右子树的根节点

总结:

后序/先序 + 中序 可以还原出原始的二叉树

1)根据后序遍历/先序结果,找到根节点

2)根据根节点去中序中查看,区分出谁是左子树,谁是右子树

3) 根据中序,知道了左右子树之后,再去后序中找对应的子树后序结果

方法说明:

size() - 获取树中结点的个数 - 通过递归来完成,递归的初始条件是 root==null 时 return 0 递归公式是1 +size(root.left) + size(root.right) 树的节点个数等于1+左子树的节点个数+右子树的节点个数

getLeafCount(TreeNode root) - 获取叶子节点的个数 - 递归来完成 - 初始条件是空树情况下root==null叶子节点的个数显然为0,当root的左右子树都为空时该节点root就是叶子节点 , 递推公式时 getLeafCount(root.left) + getLeafCount(root.right),一棵树的叶子节点就是左子树和右子树的叶子节点相加

getKLevelCount(TreeNode root , int k) - 获取第k层的叶子节点个数- 初始条件是if(root==null || k<=k)return 0 ,if(k ==1 )return 1 - 递推公式是 一棵树的第k层叶子节点个数==左子树第k-1层+右子树的第k-1层的叶子节点个数

getHeight(TreeNode root) - 获取书的最大高度 - 初始条件root == null return 0 ;root.left == null && root.right == null return1;递推公式1+Math.max(getHeight(root.left) , getHeight(root.right),

find(TreeNode root , int val) - 查找节点 - 也是通过递归来实现的,先判定树为空的情况,返回null,再判定该树的节点值是否等于val ,等于就直接返回,未找到再递归左子树,左子树没有再找右子树

通过递归的方式实现遍历

层序遍历(广度优先搜索 ,没有递归,通过队列来实现)

获取树种结点的个数

获取树中叶子节点的个数

获取第k层叶子节点的个数

获取数的最大高度

查找节点

判断一棵树是不是二叉树

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/26 17:57:28

【RAG实战】LlamaIndex 深度集成:常用 Reader 全解析与自定义 Reader

LlamaIndex 深度集成&#xff1a;常用 Reader 全解析与自定义 Reader 实战 文章目录LlamaIndex 深度集成&#xff1a;常用 Reader 全解析与自定义 Reader 实战LlamaIndex 深度集成&#xff1a;常用 Reader 全解析与自定义 Reader 实战一、LlamaIndex Reader 体系架构1.1 BaseRe…

作者头像 李华
网站建设 2026/8/26 17:54:31

具身智能中融合TVA时空特征的VLA模型

前沿技术探索&#xff1a;TVA智能体&#xff08;简称TVA&#xff09;TVA智能体&#xff08;亦称“AI智能体视觉”或“TVA视觉智能体”&#xff09;是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习&#xff08;DRL&#xff09;、卷积神…

作者头像 李华
网站建设 2026/8/26 17:47:56

具身智能TVA-VLA分层规划提升长时序任务成功率

前沿技术探索&#xff1a;TVA智能体&#xff08;简称TVA&#xff09;TVA智能体&#xff08;亦称“AI智能体视觉”或“TVA视觉智能体”&#xff09;是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习&#xff08;DRL&#xff09;、卷积神…

作者头像 李华
网站建设 2026/8/26 17:47:26

面向具身智能的TVA-VLA增量学习防遗忘机制

前沿技术探索&#xff1a;TVA智能体&#xff08;简称TVA&#xff09;TVA智能体&#xff08;亦称“AI智能体视觉”或“TVA视觉智能体”&#xff09;是依托Transformer架构与“因式智能体”理论构建的系统级视觉技术框架。它融合深度强化学习&#xff08;DRL&#xff09;、卷积神…

作者头像 李华
网站建设 2026/8/26 17:46:43

中国技术大败局TBL-20260809-048深度解剖报告V2.1 决策迭代版

中国技术大败局TBL-20260809-048深度解剖报告V2.1 决策迭代版技术溯源说明本报告依托合肥气链科技有限公司道息实验室 QiLinkOS 开源专利分析体系&#xff0c;采用矩规双螺旋归因模型完成客观研判&#xff0c;其分析基准专利&#xff1a;CN2026109829751&#xff1b;全部数据公…

作者头像 李华
网站建设 2026/8/26 17:45:59

物理机异常重启怎么排查?定位根因,避免故障反复

物理机异常重启直接影响其上所有云主机。每次重启都应定位根因&#xff0c;避免反复发生。 本文覆盖最常见的几类根因和对应的排查方法。 判断&#xff1a;正常重启还是异常重启&#xff1f; 正常重启的特征是系统日志中有明确的 shutdown/reboot 指令记录&#xff0c;或在计划…

作者头像 李华