Java是一门广泛应用于各个领域的编程语言,其强大的语言特性让开发者可以高效的完成各种编程任务。其中,二叉树是常见的数据结构之一,本文将介绍如何使用Java编写二叉树每一层的求和。
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public ListlevelOrder(TreeNode root) { List list = new ArrayList<>(); if (root == null) return list; Queue queue = new LinkedList<>(); queue.add(root); while (!queue.isEmpty()) { int size = queue.size(); int sum = 0; for (int i = 0; i< size; i++) { TreeNode node = queue.poll(); sum += node.val; if (node.left != null) queue.add(node.left); if (node.right != null) queue.add(node.right); } list.add(sum); } return list; } }
以上是一段Java代码,其中定义了一个Solution类,该类包含一个levelOrder方法,其参数为根节点root。该方法首先判断根节点是否为空,若为空则返回空列表,否则创建一个队列queue,将根节点加入队列。然后通过循环遍历队列中各个节点,用sum变量记录每一层节点的和,最后将sum添加到list中返回。
在该方法中,我们使用了一个FIFO队列来按照层次遍历二叉树,对于每一层的节点,我们都将其值加到sum变量中,并将其左右子节点加入队列中。最后返回所有层的节点和列表。
以上就是关于Java求解二叉树每一层的和的介绍,希望能对您有所帮助。