二叉树(7)----求二叉树叶子节点个数,递归和非递归
来源:互联网 发布:veket安装软件 编辑:程序博客网 时间:2024/05/09 05:17
1、二叉树定义:
typedef struct BTreeNodeElement_t_ { void *data;} BTreeNodeElement_t;typedef struct BTreeNode_t_ { BTreeNodeElement_t *m_pElemt; struct BTreeNode_t_ *m_pLeft; struct BTreeNode_t_ *m_pRight;} BTreeNode_t;
2、求二叉树叶子节点数
叶子节点:即没有左右子树的结点
(1)递归方式
如果给定节点pRoot为NULL,则是空树,叶子节点为0,返回0;
如果给定节点pRoot左右子树均为NULL,则是叶子节点,且叶子节点数为1,返回1;
如果给定节点pRoot左右子树不都为NULL,则不是叶子节点,以pRoot为根节点的子树叶子节点数=pRoot左子树叶子节点数+pRoot右子树叶子节点数
int GetBTreeLeafNodesTotal( BTreeNode_t *pRoot){ if( pRoot == NULL ) return 0; if( pRoot->m_pLeft == NULL && pRoot->m_pRight == NULL ) return 1; return ( GetBTreeLeafNodesTotal( pRoot->m_pLeft) + GetBTreeLeafNodesTotal( pRoot->m_pRight) );}
(2)非递归方式
在遍历二叉树时,判断当前访问的节点是不是叶子节点,然后对叶子节点求和即可。
前序、中序、后序、按层遍历均可。
1 0
- 二叉树(7)----求二叉树叶子节点个数,递归和非递归
- 递归和非递归实现计算二叉树叶子节点的个数
- 二叉树叶子节点个数计算 -- 采用递归和非递归方法实现
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数(递归思想)
- 获取二叉树叶子节点个数的递归及非递归算法
- 二叉树非递归求深度和节点个数
- 二叉树中叶子节点的个数(非递归)
- 二叉树叶子节点遍历---递归与非递归方法求取树深度
- 求二叉树叶子节点的个数
- 求二叉树叶子节点的个数
- 二叉树的节点个数和深度(非递归)
- 求二叉树叶子节点的个数+求二叉树第k层的节点个数
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 求二叉树叶子节点的个数/求二叉树第k层的节点个数
- 二叉树--求二叉树叶子节点的个数/求二叉树第k层的节点个数。
- 分别采用递归和非递归方式编写两个函数,求一棵二叉树中叶子节点个数
- 二叉树中叶子节点的个数(递归)
- fspecial,imfilter
- LeetCode Unique Binary Search Trees
- Android Fragment学习笔记(二)----Fragment界面添加和管理
- mybatis多个参数的传值
- 技术达人必备
- 二叉树(7)----求二叉树叶子节点个数,递归和非递归
- 一些第三方库
- 看书《DIV+CSS商业案例与网页布局开发精讲》_制作超链接_随手笔记
- Class.forName() 和 ClassLoader.loadClass()的区别
- Android Fragement学习笔记(三)----PreferenceFragment的使用
- 概率论之先验概率和后验概率
- Linux之ubuntu学习笔记(四):文件和文件夹的权限
- hashMap 工作原理
- Java中泛型小结