我在为我的二叉树实现广度优先遍历时遇到问题。我在这两行中不断收到类转换异常:
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);
}
}