Java樹每一層節(jié)點和是一項非常重要并且常用的功能,它可以讓我們更輕松地計算樹中各個層級的節(jié)點總數(shù)。下面我們來看一下使用Java實現(xiàn)樹每一層節(jié)點和的方法。
public void sumNodePerLevel(TreeNode root) { if (root == null) { return; } Queuequeue = new LinkedList<>(); queue.offer(root); int level = 0; 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.offer(node.left); } if (node.right != null) { queue.offer(node.right); } } System.out.println("Level " + level + " sum: " + sum); level++; } }
上面的代碼使用了廣度優(yōu)先搜索算法對樹進(jìn)行遍歷,對于每一層的節(jié)點進(jìn)行了求和并輸出結(jié)果。具體來說,我們使用Java中的隊列數(shù)據(jù)結(jié)構(gòu)來進(jìn)行廣度優(yōu)先搜索,將每個節(jié)點加入隊列中,然后依次取出節(jié)點進(jìn)行處理。同時,我們使用兩個變量level和sum來記錄每一層的層數(shù)和節(jié)點總和。
在實際應(yīng)用中,我們可以根據(jù)實際需要對上述代碼進(jìn)行修改和優(yōu)化,以便更好地適應(yīng)不同的場景和需求。但總的來說,Java樹每一層節(jié)點和是一項十分實用且必要的功能,掌握這種方法可以幫助我們更輕松地完成樹相關(guān)問題的解決。