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


相关推荐
易小染1 小时前
AI-Agent学习-LangChain-01
学习·langchain
啦啦啦啦啦zzzz1 小时前
数据结构:红黑树理论
数据结构·c++·红黑树
San813_LDD2 小时前
[数据结构]LeetCode学习
数据结构·算法·图论
xian_wwq2 小时前
【学习笔记】「大模型安全:攻击面演化史」第 03 篇-数据投毒
笔记·学习·ai安全
小欣加油3 小时前
leetcode994 腐烂的橘子
数据结构·c++·算法·leetcode·bfs
.千余4 小时前
【C++】手写双向链表:list容器模拟实现
开发语言·c++·笔记·学习·其他
Felven4 小时前
B. Fair Numbers
数据结构·算法
ysu_03144 小时前
leetcode数据结构与算法1~4
c语言·数据结构·学习·算法·leetcode
小欣加油4 小时前
leetcode2574 左右元素和的差值
数据结构·c++·算法·leetcode·职场和发展
weixin_461769405 小时前
通过数组和队列构造二叉树方法(用于算法测试),C++ vector不能直接使用null
数据结构·c++·算法·vector·nullptr·null