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求解二叉樹每一層的和的介紹,希望能對您有所幫助。