如何计算二叉树中所有节点的总数?

更新于
2026-10-10 03:33:50
1阅读来源:SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计299个文字,预计阅读时间需要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。

int LeafCount(BiTree T) { if(T==NULL) return 0; if(T->lchild==NULL&&T->rchild==NULL) return 1 else return LeafCount(T->lchild)+LeafCount(T->rchild); }


本文共计299个文字,预计阅读时间需要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。

int LeafCount(BiTree T) { if(T==NULL) return 0; if(T->lchild==NULL&&T->rchild==NULL) return 1 else return LeafCount(T->lchild)+LeafCount(T->rchild); }