在Java中计算二进制树中的叶节点的程序
在这篇文章中,我们将看到有关在Java中对二进制树中的叶节点进行计数的程序的信息
算法-
计算叶节点数量的步骤是:
-
- 如果node为null,则返回0
- 如果遇到叶节点(即node.left为null和node.right为null),则返回1。
- 使用以下内容递归计算叶节点数
1 2 3 |
数 的 叶 节点= 数 的 叶 节点 在 剩下 子树 + 数 的 叶 节点 在 对 子 树 |
递归代码将是:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//递归解决方案 / *获取二叉树中叶节点的数量* / 上市 静态的 整型 getLeafCountOfBinaryTree(树节点 节点) { 如果(节点 == 空值) 返回 0; 如果(节点.剩下 ==空值 && 节点.对==空值) 返回 1; 其他 返回 getLeafCountOfBinaryTree(节点.剩下)+ getLeafCountOfBinaryTree(节点.对); } |
让我们创建一个用于计算叶节点数量的Java程序:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
包 组织.Arpit.爪哇2blog.二叉树; 上市 类 BinaryTreeLeafCount { 上市 静态的 类 树节点 { 整型 数据; 树节点 剩下; 树节点 对; 树节点(整型 数据) { 这个.数据=数据; } } //递归解决方案 / *获取二叉树中叶节点的数量* / 上市 静态的 整型 getLeafCountOfBinaryTree(树节点 节点) { 如果(节点 == 空值) 返回 0; 如果(节点.剩下 ==空值 && 节点.对==空值) 返回 1; 其他 返回 getLeafCountOfBinaryTree(节点.剩下)+ getLeafCountOfBinaryTree(节点.对); } 上市 静态的 虚空 主要(串[] args) { //创建一个二叉树 树节点 根节点=createBinaryTree(); 系统.出.打印(“二叉树中的叶节点数:”+getLeafCountOfBinaryTree(根节点)); } 上市 静态的 树节点 createBinaryTree() { 树节点 根节点 =新 树节点(40); 树节点 节点20=新 树节点(20); 树节点 节点10=新 树节点(10); 树节点 节点30=新 树节点(30); 树节点 节点60=新 树节点(60); 树节点 节点50=新 树节点(50); 树节点 节点70=新 树节点(70); 根节点.剩下=节点20; 根节点.对=节点60; 节点20.剩下=节点10; 节点20.对=节点30; 节点60.剩下=节点50; 节点60.对=节点70; 返回 根节点; } } |
运行上面的程序,您将获得以下输出:
1 2 3 |
数 的 叶 节点 在 二元 树 :4 |
请通过 常见Java面试程序 有关更多此类程序。