如何计算一棵二叉树中所有节点的总数呢?
- 内容介绍
- 文章标签
- 相关推荐
本文共计298个文字,预计阅读时间需要2分钟。
解决思路+如果是空树,则节点个数为0;+否则,节点个数为左子树的节点个数+右子树的节点个数+1+int NodeCount(BiTree T)+{+ if(T==NULL)+ return 0;+ else+ return NodeCount(T->lchild) + NodeCount(T->rchild) + 1;+}+补充+
解决思路
如果是空树,则结点个数为0;
否则,结点个数为左子树的结点个数+右子树的结点个数再+1
int NodeCount(BiTree T)
{
if(T==NULL)
return 0;
else
return NodeCount(T->lchild)+LeaveCount(T->rchild)+1;
}
补充算法——计算二叉树的叶子结点数
如果是空树,则结点个数为0;
否则,结点个数为左子树叶子结点个数+右子树的叶子结点个数
为什么求叶子结点时不需要加1呢,求叶子结点,根结点既然有左子树和右子树,那它肯定就不是叶子结点,所以就不需要加1。
本文共计298个文字,预计阅读时间需要2分钟。
解决思路+如果是空树,则节点个数为0;+否则,节点个数为左子树的节点个数+右子树的节点个数+1+int NodeCount(BiTree T)+{+ if(T==NULL)+ return 0;+ else+ return NodeCount(T->lchild) + NodeCount(T->rchild) + 1;+}+补充+
解决思路
如果是空树,则结点个数为0;
否则,结点个数为左子树的结点个数+右子树的结点个数再+1
int NodeCount(BiTree T)
{
if(T==NULL)
return 0;
else
return NodeCount(T->lchild)+LeaveCount(T->rchild)+1;
}
补充算法——计算二叉树的叶子结点数
如果是空树,则结点个数为0;
否则,结点个数为左子树叶子结点个数+右子树的叶子结点个数
为什么求叶子结点时不需要加1呢,求叶子结点,根结点既然有左子树和右子树,那它肯定就不是叶子结点,所以就不需要加1。

