0
我正在嘗試爲BST實現級別遍歷,但我收到了一個奇怪的錯誤。 下面是代碼:使用Java PriorityQueue實現級別順序遍歷二叉搜索樹時出錯
public void levelOrderTraverseTree(Node focusNode) {
PriorityQueue<Node> currentLevel = new PriorityQueue<Node>();
PriorityQueue<Node> nextLevel = new PriorityQueue<Node>();
currentLevel.add(focusNode);
while (!currentLevel.isEmpty()) {
Iterator<Node> iter = currentLevel.iterator();
while (iter.hasNext()) {
Node currNode = iter.next();
System.out.println(currentLevel.remove());
System.out.println("adding "+currNode.leftChild+"to nextLevel");
nextLevel.add(focusNode.leftChild);
System.out.println("adding "+currNode.rightChild+"to nextLevel");
nextLevel.add(focusNode.rightChild);
}
currentLevel = nextLevel;
nextLevel.clear();
}
}
當我嘗試運行它,我得到這個錯誤
Exception in thread "main" java.lang.ClassCastException: Node cannot be cast to java.lang.Comparable
上,增加了focusNode.rightChild
到nextLevel
隊列行,或nextLevel.add(focusNode.rightChild);
我不確定爲什麼會發生這個錯誤,所以任何見解都將不勝感激。
它解決了我的問題!非常感謝你。 – Zach 2014-11-23 19:52:29
太棒了! :)請接受我的回答! :D – 2014-11-23 19:53:57
不得不等待的時間限制,現在接受它 – Zach 2014-11-23 20:02:57