我已經編寫了一個代碼,用於在具有最大元素總和的二叉樹中查找等級。我有幾個問題。二叉樹最大總和水平 - 更好的設計?
- 這是一個很好的設計嗎? - 我已經使用了2個隊列,但是這兩個隊列存儲的元素總數都小於n。所以我認爲它應該是好的。
能有更好的設計嗎?
public class MaxSumLevel { public static int findLevel(BinaryTreeNode root) { Queue mainQ = new Queue(); Queue tempQ = new Queue(); int maxlevel = 0; int maxVal = 0; int tempSum = 0; int tempLevel = 0; if (root != null) { mainQ.enqueue(root); maxlevel = 1; tempLevel = 1; maxVal = root.getData(); } while (!mainQ.isEmpty()) { BinaryTreeNode head = (BinaryTreeNode) mainQ.dequeue(); BinaryTreeNode left = head.getLeft(); BinaryTreeNode right = head.getRight(); if (left != null) { tempQ.enqueue(left); tempSum = tempSum + left.getData(); } if (right != null) { tempQ.enqueue(right); tempSum = tempSum + right.getData(); } if (mainQ.isEmpty()) { mainQ = tempQ; tempQ = new Queue(); tempLevel ++; if (tempSum > maxVal) { maxVal = tempSum; maxlevel = tempLevel; tempSum = 0; } } } return maxlevel; }
}
更好的配合[CodeReview.SE(http://codereview.stackexchange.com/) – amit 2012-08-13 06:56:57
@Amit,看起來像代碼審查具有非常低的用戶羣。這種類型的Q也會在這裏討論。所以我覺得這個論壇比較合適 – Manish 2012-08-13 07:06:37