其他分享
首页 > 其他分享> > 二叉树的叶结点/ 树的深度计算

二叉树的叶结点/ 树的深度计算

作者:互联网

二叉树叶子结点的计算:

二叉树叶子结点总数等于左子树的叶子结点 + 右子树的叶子结点,

判断是不是叶子结点 , 如果是返回1 ,如果不是叶子结点,继续递归。

线序计算二叉树结点个数:

首先定义一个全局变量 leftNum, 如果是叶子结点,就让叶子结点计数器leftNum++;

如果不是叶子结点,就递归子树,找子树的叶子结点,遇见叶子结点,计数器leftNum++;

int BiTree::CountLeaf(node *bt){
	if(bt->lchild==NULL && bt->rchild==NULL){
		leftNum++;
	}
	
	CountLeaf(bt->lchild);
	CountLeaf(bt->rchild);
}

 递归算法计算叶子结点个数:

叶子结点个数就是左子树的叶子结点 + 右子树的叶子结点, 如果是叶子结点,就返回1,如果不是叶子结点,就用递归找左右子树的叶子结点。

int BiTree::num_root(node *bt){
	if(bt->lchild==NULL && bt->rchild == NULL){
		return 1;
	}
	else{
		return num_root(bt->lchild)+num_root(bt->rchild);
	}
}

标签:bt,结点,叶子,leftNum,二叉树,深度,NULL
来源: https://blog.csdn.net/qq_53345829/article/details/121594818