淘先锋技术网

首页 1 2 3 4 5 6 7

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) {
Listlist = new ArrayList<>();
if (root == null) return list;
Queuequeue = 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求解二叉树每一层的和的介绍,希望能对您有所帮助。