在Java中,如果要輸出二叉樹中每一行的和,并找出其中的最大值,可以使用以下代碼:
public int maxLevelSum(TreeNode root) { int result = 0; int level = 1; int maxSum = Integer.MIN_VALUE; Queuequeue = new LinkedList<>(); queue.offer(root); while (!queue.isEmpty()) { int levelSize = queue.size(); int levelSum = 0; for (int i = 0; i< levelSize; i++) { TreeNode node = queue.poll(); levelSum += node.val; if (node.left != null) { queue.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } if (levelSum >maxSum) { maxSum = levelSum; result = level; } level++; } return result; }
首先,定義一個變量來記錄最大和以及所在的行數(shù),初始值為0。同時定義一個變量來記錄當前的層數(shù),初始值為1。然后創(chuàng)建一個隊列,將二叉樹的根節(jié)點加入隊列中。
接下來,使用while循環(huán)來遍歷二叉樹。在循環(huán)中,首先獲取當前層的節(jié)點數(shù)量,并將該層節(jié)點的值求和。同時,遍歷該層的每個節(jié)點,將其左右子節(jié)點加入隊列中。
然后,比較當前層的和與最大和之間的大小關(guān)系。如果當前層的和大于最大和,則更新最大和和所在的層數(shù)。
最后,返回最大和所在的層數(shù)。