【数据结构】二叉树详解(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 递归流程图:


相关推荐
User_芊芊君子9 小时前
【成长纪实】我的鸿蒙成长之路:从“小白”到独立开发,带你走进鸿蒙的世界
学习·华为·harmonyos·鸿蒙开发
嵌入式-老费11 小时前
自己动手写深度学习框架(快速学习python和关联库)
开发语言·python·学习
Shinom1ya_11 小时前
算法 day 41
数据结构·算法·leetcode
执笔论英雄12 小时前
【大模型训练】zero 学习及deepseed实战
人工智能·深度学习·学习
无敌最俊朗@12 小时前
C++ 值类别与移动语义详解(精简版)
java·数据结构·算法
岑梓铭13 小时前
《考研408数据结构》第六章(5.5树的应用)复习笔记
数据结构·笔记·考研·408·ds
不觉晚秋13 小时前
极限挑战之一命速通哈夫曼树
c语言·数据结构··哈夫曼树
前路不黑暗@13 小时前
Java:继承与多态
java·开发语言·windows·经验分享·笔记·学习·学习方法
第七序章13 小时前
【C + +】C++11 (下) | 类新功能 + STL 变化 + 包装器全解析
c语言·数据结构·c++·人工智能·哈希算法·1024程序员节
2501_9160074714 小时前
从零开始学习iOS App开发:Xcode、Swift和发布到App Store完整教程
android·学习·ios·小程序·uni-app·iphone·xcode