对于给定的二叉树,编写一个程序以查找奇数级和偶数级的节点总数之差。假设根在1级,根的左/右子级在2级,依此类推。
5 / \ 2 6 / \ \ 1 4 8 / / \ 3 7 9 Sum of nodes at odd level = 5 + 1 + 4 + 8 = 18 Sum of nodes at even level = 2 + 6 + 3 + 7 + 9 = 27 Difference = -9.
使用递归遍历。遍历期间,返回根节点及其左,右子节点之差。
以下是Java中的程序,用于查找所需的输出。
class Node { int data; Node left, right; Node(int data){ this.data = data; this.left = this.right = null; } } public class JavaTester { public static Node getTree(){ Node root = new Node(5); root.left = new Node(2); root.right = new Node(6); root.left.left = new Node(1); root.left.right = new Node(4); root.left.right.left = new Node(3); root.right.right = new Node(8); root.right.right.right = new Node(9); root.right.right.left = new Node(7); return root; } public static int difference(Node node){ if(node == null) return 0; return node.data - difference(node.left) - difference(node.right); } public static void main(String args[]){ Node tree = getTree(); System.out.println(difference(tree)); } }
输出结果
-9
本文向大家介绍Java中二叉树的奇数位置和偶数位置节点之和之间的差,包括了Java中二叉树的奇数位置和偶数位置节点之和之间的差的使用技巧和注意事项,需要的朋友参考一下 问题陈述 对于给定的二叉树,编写一个程序以查找奇数位置和偶数位置的节点总和之差。假设根位于0级,奇数位置,根的左/右子级位于2级,左子级位于奇数位置,右子级位于偶数位置,依此类推。 示例 解 使用级别顺序遍历。在遍历期间,将第一个元
本文向大家介绍奇数和偶数之和之间的差。,包括了奇数和偶数之和之间的差。的使用技巧和注意事项,需要的朋友参考一下 问题陈述 对于给定的长整数n,编写一个程序以查找奇数位和偶数位总和之间的差是否为0。索引从0开始。 示例 示例 以下是Java中的程序,用于查找所需的输出。 输出结果
如何计算二叉树中最小级别所有叶节点的总和。如果不存在树,则应返回-1。 例子: 对于上述二叉树,返回100(40 60) (图片来源:Geeksforgeks)
我有一个任务,给我一个随机生成的BST的根。我得到了随机生成的测试用例。 分配说明如下: 您将得到二叉搜索树的根节点T和两个整数:min和max。确定存储在T中大于或等于min且小于或等于max的所有键的总和。递归地实现算法 我不允许使用全局变量或创建辅助函数 我当前的代码是: 我的问题是,如果在递归过程中的任何时候,节点都会触发基本情况,并导致我的函数无法正确完成。我相信我的命令可能是罪魁祸首。
我有一个列表,可以包含两个自然数或两个以上的列表。每个列表还包含两个整数或两个其他列表,依此类推。e、 i.:[[4,7],[3,5],[9,1]]我需要使用递归来计算树中所有数字的总和,并编写以下代码: 代码不工作,因为它总是将sum返回到12,所以我的问题是,如何使它工作,但仍然使用递归?。我没有正确地识别基本情况吗?
问题查找具有n个节点的完整二叉树中的叶节点数。 我为上述问题编写了一个递归程序,每当我到达一个没有子节点的节点时,遍历树并增加叶节点的数量。但由于这棵树是一棵完整的二叉树,我认为这会使问题变得更容易,但我不知道如何解决。它是否可以简化为紧凑形式(类似于公式)。