【数据结构】二叉树详解(2)

⭐️ 前言

✨ 往期文章链接:二叉树的概念性质

上一篇我们讲了二叉树的结构定义,以及前序/中序/后序 的递归遍历,还有一些二叉树的接口实现,本篇我们补充一个二叉树的接口 BinaryTreeDepth。✨上一篇文章链接:二叉树详解(1)

前篇:



⭐️二叉树的其他接口

c 复制代码
// 求二叉树的深度
int BinaryTreeDepth(BinaryTreeNode* root);

BinaryTreeDepth 实现:

c 复制代码
int BinaryTreeDepth(BinaryTreeNode* root) {
	// 空树没有高度直接返回0
	if (root == NULL) {
		return 0;
	}
	
	// 递归获取左子树的高度
	int leftTreeDepth = BinaryTreeDepth(root->left);
	// 递归获取右子树的高度
	int rightTreeDepth = BinaryTreeDepth(root->right);

	// 比较左子树和右子树的高度 取较高的同时在加上当前这一层的高度
	return leftTreeDepth > rightTreeDepth ? leftTreeDepth + 1 : rightTreeDepth  + 1;
}

BinaryTreeDepth 递归流程图:


相关推荐
阿达和自己43 分钟前
springboot学习-springboot引入MyBatis-Plus
spring boot·学习·mybatis
旖旎夜光1 小时前
【C++ 基础入门】C++11 新特性(中):右值引用、移动语义与完美转发
开发语言·c++·笔记·学习
nice_lcj5202 小时前
LRU 缓存入门:它是什么、怎么用、面试怎么手写
java·数据结构·缓存·面试·lru
꧁细听勿语情꧂2 小时前
直接选择排序,堆排序,冒泡排序,递归快速排序、hoare版本、挖坑法、lomuto前后指针,非递归快速排序
c语言·开发语言·数据结构·算法
§ꦿCFོ༉13 小时前
嵌入式八股文—C语言入门学习(四)
c语言·开发语言·学习
2603_9696948515 小时前
【JavaWeb学习记录】MyBatis核心知识点与实战笔记:从入门到动态SQL
笔记·sql·学习·mysql·mybatis·javaweb·学习方法
Pniubi15 小时前
关于算法用现成数据结构和手撕
数据结构
北京云帆互联科技21 小时前
云帆培训考试系统更新说明:v9.3.0
java·学习
sxlishaobin1 天前
Maven Setting详解
java·学习·maven
老师我太想进步了20261 天前
【数据结构-6】算法美学之单链表(1)
数据结构·算法