【发布时间】:2013-11-15 10:56:51
【问题描述】:
我在实现二叉树的广度优先遍历时遇到问题。我在这两行不断收到类转换异常:
if(node.left != null) queue.offer(node.left);
if(node.right != null) queue.offer(node.right);
异常说:“TreeNode 不能转换为 java.lang.Comparable” 我需要该类的其他方法的扩展 Comparable,有关如何解决此问题的任何建议?谢谢!
public class TreeNode<E extends Comparable<E>> {
private TreeNode<E> left;
private TreeNode<E> right;
private E value;
public TreeNode(E value)
{
this.value = value;
}
public void breadthFirstTraversal(TreeNode<E> root, ArrayList<E> breadthList)
{
Queue<TreeNode<E>> queue = new PriorityQueue<TreeNode<E>>();
if (root == null)
return;
queue.clear();
queue.offer(root);
while(!queue.isEmpty())
{
TreeNode<E> node = queue.remove();
breadthList.add(node.value);
if(node.left != null) queue.offer(node.left);
if(node.right != null) queue.offer(node.right);
}
}
【问题讨论】:
标签: java binary-search-tree comparable