求二叉树第K层的叶子节点的个数(假设根节点是第一层)
来源:互联网 发布:手机淘宝店铺店招 编辑:程序博客网 时间:2024/05/22 08:02
算法思想:采用队列结构按层次遍历,遍历K层时记录叶子的个数
int LeafKlevel(BiTree bt, int k){ //求二叉树bt的第k(k >1)层上叶子的节点个数 if(bt == NULL || k < 1) return 0; BiTree p=bt,Q[]; //Q是队列,元素是二叉树节点的指针 int front = 0,rear = 1,leaf = 0 //front 和 rear 是队头和队尾指针,leaf是叶子节点数 int last = 1,level = 1; //last是二叉树同层最右节点的指针,level是二叉树的层数 Q[1] = p; //根节点进队列 while(front <= rear){ p = Q[++front]; if(level == k && !p->lchild && !p->child) leaf++; //叶子节点 if(p->lchild) Q[++rear] = p->lchild; //左孩子入队 if(p->rchild) Q[++rear] = p->rchild; //右孩子入队 if(front == last){ level++; //二叉树同层最右节点已处理,层数增加一 last = rear; //last移动到下一层的最右一个元素 } if(level > k) return leaf; }//while}
0 0
- 求二叉树第K层的叶子节点的个数(假设根节点是第一层)
- 求二叉树的节点个数、叶子节点个数、第k层的节点个数
- 求二叉树中叶子节点个数,总的节点个数,第K层的节点个数
- 求二叉树的高度,叶子节点个数,第K层结点个数,求祖先结点问题
- 求二叉树第K层的节点个数
- 求二叉树叶子节点的个数+求二叉树第k层的节点个数
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数
- 二叉树第k层的叶子节点数
- 二叉树--求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数 && 求第K层的节点个数
- 17_7_22 求二叉树叶子节点的个数/求二叉树第k层的节点个数
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数(递归思想)
- 数据结构面试题/求二叉树叶子节点的个数/求二叉树第k层的节点个数
- 设计一个算法,求非空二叉树中指定的第k层(k>1)的叶子节点的个数
- 求二叉树第k层节点个数
- 求二叉树第k 层的节点数
- AlarmManager类的应用(实现闹钟功能)
- FireMonkey Style之TLabel篇
- 10个经典的C语言面试基础算法及代码
- Lua脚本语言——基本语法(一)
- Android打包失败Proguard returned with error code 1. See console
- 求二叉树第K层的叶子节点的个数(假设根节点是第一层)
- 字符串-05. 字符串循环左移(20)
- java eclipse 注释代码快捷键 取消代码注释快捷键
- Oracle建立DBLINK的详细步骤记录
- 函数的回调
- Android --- 图片的特效处理(缩放,圆角,倒影)
- MAC OSX使用(一)——MAC OSX系统简介
- Exynos 4412--BLOCK DIAGRAM
- iOS中NSString转化成NSUrl