我得到了“java.lang.string无法转换为节点”异常。我想过使用提供的toString方法将localRoot转换为字符串然后比较它们,坚持这没有留下我需要导航BST的“大于”或“小于”的概念......
int computeResult = ((Node<E>)o).compareTo(localRoot);
,其中 o是Object类型 localRoot属于Node类型 compareTo方法接受一个Node
答案 0 :(得分:0)
好笑,我本周末花了一些时间来处理Java binary tree implementation。看看你怎么想。
答案 1 :(得分:0)
String确实有一个compareTo方法,它的概念大于和小于
所以你可以把这行代码写成:
int computeResult = o.toString().compareTo(localRoot.toString());
来自Javadocs for java.lang.string:
public int compareTo(String anotherString)
指定者:接口中的compareTo 可比较
参数:anotherString - String 待比较。
返回:参数值为0 string等于这个字符串;一个 如果此字符串为小于0的值 按字典顺序小于字符串 参数;和一个大于0的值 如果这个字符串按字典顺序排列 大于字符串参数。