【数据结构】求二叉树深度的算法
要求二叉树的深度,方法是先求出左子树的深度,再求出右子树的深度,二叉树的深度就是左子树的深度和右子树的深度中的最大值加1. 自然而然想到用后根遍历的思想实现
主要步骤如下:
若二叉树为空,则返回0值,否则
- 求左子树的深度;
- 求右子树的深度;
- 将左子树、右子树深度的最大值加1并返回其值。
//求二叉树深度的算法public int getDepth(BiTreeNode T) {if(T!=null) {int lDepth=getDepth(T.lchild); //左子树的深度int rDepth=getDepth(T.rchild); //右子树的深度return 1+(lDepth>rDepth?lDepth:rDepth); //返回左子树的深度和右子树的深度中最大值+1}return 0;}//求二叉树深度的递归算法public int getDepth1(BiTreeNode T) {if(T==null) {return 0;}else if(T.lchild==null && T.rchild==null) {return 1;}else {return 1+(getDepth1(T.lchild)>getDepth1(T.rchild)?getDepth1(T.lchild):getDepth1(T.rchild));}}
【数据结构】求二叉树深度的算法相关推荐
- 求二叉树深度算法(深度优先、广度优先)
求二叉树深度的算法 求二叉树深度 方法一:深度优先的遍历方式 方法二:广度优先的遍历方式 总结 求二叉树深度 注:本文中二叉树通过二叉链表构建. 节点类型定义如下: struct node{char ...
- 已知二叉树的前序遍历、中序遍历或者中序遍历、后序遍历求二叉树结构的算法
二叉树中的前序遍历是先访问根结点,再访问左子树,右子树. 中序遍历是先访问左子树,再是根结点,最后是右子树. 后序遍历是先访问左子树,再是右子树,最后是根结点. 算法思路是先根据前序遍历的第一个结点或 ...
- C++求二叉树深度的两种方法
今天在leetcode中碰到了求二叉树的深度问题,于是总结一下这两种方法 方法一是用递归的方法,方法二是借助队列和层序遍历的思想 #include<iostream> #include&l ...
- 求二叉树深度以及寻找二叉树中某一节点值
求二叉树的深度依然用的是二叉树递归的特性.二叉树的深度就是你根节点的这一层加上他左孩子或者右孩子中深度大的哪一个,同样这也能被划分为子问题. size_t BTreeDepth(BTNode* roo ...
- 二叉树深度的算法 ~
注:二叉树以二叉链表为存储方式 /* 思路1.首先明白:二叉树深度 = 左子树.右子树中最大的深度 + 12.则 先得到左子树深度,再取得右子树深度3.取最大深度值 + 1 */int getDept ...
- 判断完全二叉树及求二叉树深度完整代码
完全二叉树定义:一棵深度为k的有n个结点的二叉树,对树中的结点按从上至下.从左到右的顺序进行编号,如果编号为i(1≤i≤n)的结点与满二叉树中编号为i的结点在二叉树中的位置相同,则这棵二叉树称为完全二 ...
- python求二叉树深度(递归)
def tree_deep(root):if not root:return 0 #说明上一个节点是叶子节点,开始逐步返回left, right = 0, 0if root.left:left = t ...
- 【笔记】顺序存储结构求二叉树深度
代码: #include<vector> using namespace std; vector<int> e[100005]; int dep[100005], f[1000 ...
- 【数据结构】二叉树的节点总个数、叶子节点个数、第K层节点个数、二叉树的深度
目录 1.结点总个数 1.1 局部静态变量法 思维 代码 不足之处 2.传指针法 程序代码 3.递归法 思想 程序代码 详细过程 2.叶子节点个数 思想 程序代码 3.第K层节点个数 思想 程序代码 ...
最新文章
- 谷歌新深度学习系统可以促进放射科医生的发展
- 使用Donut Caching和Donut Hole Caching在ASP.NET MVC应用中缓存页面
- [Office]Word2010(windows版)粘贴不合并格式
- [Redux/Mobx] Redux怎样重置状态?
- vimrc.local 备份
- 随机游走问题的神奇应用(一)
- linux系统设置成中文语言
- 【Word 教程系列第 2 篇】Word 中如何设置每页的表格都有表头
- kuka机器人码垛编程网盘_kuka机器人循环指令码垛编程探索
- Restorator软件使exe文件都不能打开,任务管理器不支持此接口
- Matplotlib颜色设置
- 记录Springboot+Mybatis_Plus进行CRUD与分页的注意点
- 鸿蒙轻量设备侧Camera应用中的Surface使用
- nginx 配置端口转发
- jmp指令流程图怎么写_流程图模板
- 职业经理人七项修炼-转自栖息谷
- NIC(Network Interface Controller,网络接口控制器)
- 如何轻松把mysql数据表对齐?!正解在这儿
- 暑假总结--新学期计划
- 计算机画大熊猫教案,幼儿园大班《画熊猫》教案