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

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

代码思路:

首先你要知道什么是叶子结点,就是一棵树的某个结点,它下面没有左右子树了,这个就叫叶子结点。知道这个之后,我们只需要一步步从根节点往下遍历,看哪个结点没有左右子树就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;
}
相关推荐
iceslime几秒前
旅行商问题(TSP)的 C++ 动态规划解法教学攻略
数据结构·c++·算法·算法设计与分析
aichitang20241 小时前
矩阵详解:从基础概念到实际应用
线性代数·算法·矩阵
OpenCSG2 小时前
电子行业AI赋能软件开发经典案例——某金融软件公司
人工智能·算法·金融·开源
witton2 小时前
美化显示LLDB调试的数据结构
数据结构·python·lldb·美化·debugger·mupdf·pretty printer
chao_7892 小时前
链表题解——环形链表 II【LeetCode】
数据结构·leetcode·链表
dfsj660113 小时前
LLMs 系列科普文(14)
人工智能·深度学习·算法
薛定谔的算法3 小时前
《盗梦空间》与JavaScript中的递归
算法
kaiaaaa3 小时前
算法训练第十一天
数据结构·算法
?!7143 小时前
算法打卡第18天
c++·算法
springfe01013 小时前
构建大顶堆
前端·算法