编写计算二叉树中叶子结点数目的算法

编写计算二叉树中叶子结点数目的算法

代码思路:

首先你要知道什么是叶子结点,就是一棵树的某个结点,它下面没有左右子树了,这个就叫叶子结点。知道这个之后,我们只需要一步步从根节点往下遍历,看哪个结点没有左右子树就count+1即可

ps:我们这里选择后序遍历------左右根,你选其他两种遍历方式也可以,毕竟这里只需要统计个数,没有要求你把序列写出来。只要能把一棵树完整遍历到就可以了。

c 复制代码
//二叉树结构体
typedef struct BiTNode
{
    char data;
    struct BiTNode* lchild, * rchild;
}BiTNode, * BiTree;

int count=0;

int leafcount(BiTree T){
	if(T!=NULL){//递归跳出条件
		leafcount(T->lchild);//访问左右孩子
		leafcount(T->rchild);
		if(T->lchild==NULL&&T->rchild==NULL){//该结点无左右子树
			count++;
		}
	}
	return count;
}
相关推荐
busideyang3 分钟前
函数指针类型定义笔记
c语言·笔记·stm32·单片机·算法·嵌入式
Wect5 分钟前
LeetCode 215. 数组中的第K个最大元素:大根堆解法详解
前端·算法·typescript
深邃-16 分钟前
数据结构-双向链表
c语言·开发语言·数据结构·c++·算法·链表·html5
2401_8785302117 分钟前
分布式任务调度系统
开发语言·c++·算法
_深海凉_34 分钟前
LeetCode热题100-两数之和
算法·leetcode·职场和发展
nunca_te_rindas38 分钟前
算法刷体小结汇总(C/C++)20260328
c语言·c++·算法
Sunshine for you41 分钟前
高性能压缩库实现
开发语言·c++·算法
Sunshine for you42 分钟前
C++中的表达式模板
开发语言·c++·算法
qwehjk200842 分钟前
C++中的状态模式
开发语言·c++·算法
Fortune791 小时前
自定义类型转换机制
开发语言·c++·算法