AVL 树 - 需要:字符串,找到:AVL

AVL tree - required: String, found: AVL

static String min ( AVLStringTreeNode t ) {
    if( t == null )
        return t;
    while( t.left != null ) // location of error
        t = t.left;
    return t.val;
}

A​​VLStringTreeNode 的构造函数:

public class AVLStringTreeNode
{
    public String val;
    public int height;
    public AVLStringTreeNode left, right;
}

错误:

incompatible types required: java.lang.String found: AVLStringTreeNode

我看不出代码有什么问题。我做错了什么?

你的return类型是String,但是当t为null时,你returnt是AVLStringTreeNode

试试这个:

static String min ( AVLStringTreeNode t ) {
    if( t == null )
        return null;
    while( t.left != null ) // location of error
        t = t.left;
    return t.val;
}

我认为你必须像这样重写你的 while 代码 -

while( t.left != null ){
   if(t.left!=null){     
      t = t.left; 
  }
}  

错误可能是因为一旦t.left变为null。所以它检查空值。

希望对您有所帮助。
非常感谢。