计算二叉树叶子结点个数 C/C++
叶子结点:没有左孩子和右孩子的节点。
如下:
这棵二叉树中叶子结点为红色圈圈中的节点,共有 5 个。
看代码:
#include<iostream>
using namespace std;typedef struct BinaryTreeNode
{char data; //数据struct BinaryTreeNode *left; //左孩子struct BinaryTreeNode *right; //右孩子
}Node;int getLeafNum(Node *root)
{if (NULL == root){return 0;}if (NULL == root->left && NULL == root->right){return 1;}int leftLeafNum = getLeafNum(root->left);int rightLeafNum = getLeafNum(root->right);int leafNum = leftLeafNum + rightLeafNum;return leafNum;
}int main()
{//准备数据Node nodeA = { 'A',NULL,NULL };Node nodeB = { 'B',NULL,NULL };Node nodeC = { 'C',NULL,NULL };Node nodeD = { 'D',NULL,NULL };Node nodeE = { 'E',NULL,NULL };Node nodeF = { 'F',NULL,NULL };Node nodeG = { 'G',NULL,NULL };Node nodeH = { 'H',NULL,NULL };Node nodeI = { 'I',NULL,NULL };//建立关系nodeA.left = &nodeB;nodeA.right = &nodeC;nodeB.left = &nodeD;nodeB.right = &nodeE;nodeC.left = &nodeF;nodeC.right = &nodeG;nodeF.left = &nodeH;nodeF.right = &nodeI;//调用函数int depth = getLeafNum(&nodeA);printf("二叉树的叶子结点个数为:%d\n", depth);system("pause");return 0;
}
运行结果:
不保证代码百分百对哈。我也就随便一写。^_^
计算二叉树叶子结点个数 C/C++相关推荐
- c语言实现求二叉树叶子结点个数
通过递归求解二叉树叶子结点个数,关键在于递归结束条件的设置. main.c #include<stdio.h>//定义结点类型 typedef struct BINARYNODE {cha ...
- 西工大NOJ数据结构理论——016.计算二叉树叶子结点数目(耿6.14)
一.初级思路 拿到题之后的好习惯--先在纸上写思路: 1.构建二叉树: char* BinTreeBuilding(PBinTreeNode ptr_node,char *ptr_str){//创建二 ...
- 【数据结构】——二叉树的创建、计算叶子结点个数、递归遍历
前面我们讲了关于数据结构中的堆栈问题,这篇文章主要是为大家简要介绍一下二叉树,并实现二叉树的创建.计算叶子结点个数.递归遍历.判断是否是完全二叉树等相关问题~ 一.二叉树的介绍 1.什么是二叉树 一棵 ...
- 入门二叉树,三种遍历,计算结点个数 ,深度 叶子结点个数,第k层结点个数
1.关于二叉树的前中后序快速排序 那就在这里拿这张图来演示一下怎样快速写出中序遍历,我们都知道中序遍历是,左子树,根,右子树 B A C D E F H 最后直接得出结果DBEHACF 2.二叉树的五 ...
- 计算二叉树的第k层中所有叶子结点个数
计算二叉树的第k层中所有叶子结点个数 Time Limit:1000MS Memory Limit:65535K 题型: 编程题 语言: 无限制 描述 二叉链表表示的二叉树:按先序次序输入二叉树中结点 ...
- 树与二叉树——二叉树中计算叶子结点个数问题
1.已知完全二叉树具有967个结点,则其叶子结点个数为: 详解: 首先明确一点该二叉树是一棵二叉树,那可以使用二叉树的一些性质. 从第一层开始计算每层的节点个数:1,2,4,8,16,32,64,12 ...
- 31行代码AC——PTA 求二叉树的叶子结点个数 (20分)——解题报告
励志用尽量少的代码做高效的表达. 以二叉链表作为二叉树的存储结构,求二叉树的叶子结点个数. 输入格式: 输入二叉树的先序序列. 提示:一棵二叉树的先序序列是一个字符串,若字符是'#',表示该二叉树是空 ...
- 数据结构----二叉树叶子结点到根节点的高度计算
数据结构----二叉树叶子结点到根节点的高度计算 代码: #include<stdio.h> #include<stdlib.h> typedef struct bstTree ...
- 二叉树的进阶操作---(求二叉树中所有结点个数,求叶子结点个数,求第k层结点个数;在二叉树中查找某一结点;层序遍历;判断是否为完全二叉树)
typedef struct TreeNode {struct TreeNode *left;struct TreeNode *right;char val; }TreeNode;typedef st ...
- 二叉树叶子结点,非叶子节点以及深度的计算
二叉树叶子结点的计算 //统计叶子结点的数目 int LeafNum(BiTree T) {if (!T) {return 0;} else if (!T->lchild && ...
最新文章
- mysql老是下载了用不了_mysql - 下载与安装
- ElasticSearch2.2.0安装
- redis与spring的完全集成
- 金士顿u盘分区工具_使用U盘工具给电脑硬盘快速分区教程
- SpringBoot_数据访问-整合MyBatis(二)-配置版MyBatis
- Android 获得ImageView中Image的绘制大小
- threejs 绘制球体_Three.js 第一篇:绘制一个静态的3D球体
- 服务器系统格式,服务器系统编码格式
- L1-003. 个位数统计-PAT团体程序设计天梯赛GPLT
- Android Multimedia框架总结(二十四)MediaMuxer实现手机屏幕录制成gif图
- 电脑端OneNote2019(win10系统)登录微软账号登陆错误报错误码0x80860010错误-已解决
- 商务与经济统计学习笔记整理/安德森/第13版
- 你的脑容量(字符串问题,小技巧)
- 关于PHP 源码 加密的 一些 学习(黑刀)
- Cross-speaker Style Transfer with Prosody Bottleneck in Neural Speech Synthesis
- android 设置锁屏壁纸
- 计算机专业的入门书籍(第一篇博客)
- 《Erlang/OTP并发编程实战》第八章 分布式 Erlang/OTP 简介
- linux ftp上传目录,Linux中ftp不能上传文件/目录的解决办法
- Python 实现三维建模工具(上)