我收到“java.lang.string 无法转换为节点”异常。我想使用提供的 toString 方法将 localRoot 转换为字符串,然后将它们进行比较,这不会留下我需要导航 BST 的“大于”或“小于”的概念......
int computeResult = ((Node<E>)o).compareTo(localRoot);
其中 o 是 Object 类型 localRoot 是 Node 类型 compareTo 方法需要一个 Node
有趣的是,这个周末我花了一些时间研究Java 二叉树的实现。看看你是怎么想的。
String 确实有一个 compareTo 方法,该方法确实具有大于和小于的概念
所以你可以把那行代码写成:
int computeResult = o.toString().compareTo(localRoot.toString());
来自 java.lang.string 的 Javadocs:
public int compareTo(String anotherString)
指定者:Comparable接口中的compareTo
参数: anotherString - 要比较的字符串。
返回: 如果参数字符串等于该字符串,则值为 0;如果此字符串按字典顺序小于字符串参数,则值小于 0;如果此字符串按字典顺序大于字符串参数,则值大于 0。