算法-求二叉树最小深度

本文介绍了如何求解二叉树的最小深度,通过深度优先遍历和递归算法进行计算。以实例解析递归过程,详细阐述了如何根据节点的子节点来确定最小深度,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法-求二叉树最小深度


基本概念:

二叉树的最小深度:从根节点出发到达叶子节点的经过的最少的节点数。


这里写图片描述

上述这个图,最短路径应该是A-E这一支。

算法思路:
利用深度优先遍历,递归地返回节点路径长度。

递归算法不是很好理解,这里用上图例子说明。

对于算法开始,判断是A否节点是否为空,如果是空则返回0。

此时想知道A节点的到最小深度的叶子节点要根据A节点的两个叶子节点决定,此时,递归开始,run(root->left),run(root->right);

那么,节点B到最小深度的叶子节点长度是根据CD两个节点决定的
,对于有空子节点的节点,深度值=1(自身)+left+right,即lengthC = lenghtD = 1+0+0=1;

对于有两个子节点的节点,例如B,计算深度值=1+min(lengthC,lengthD)=2;
同理对于A的深度值=1+min(lengthB,lengthE)=2;
所求的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值