2015-03-11 10 views
1
static String min (AVLStringTreeNode t) { 
    if(t == null) 
     return t; 
    while(t.left != null) // location of error 
     t = t.left; 
    return t.val; 
} 

конструктор AVLStringTreeNode:AVL дерево - требуется: String, найдено: AVL

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

Ошибка:

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

Я не вижу ничего плохого с кодом. Что я делаю не так?

+0

Это ошибка времени выполнения? – Razib

+0

Ошибка компиляции – Firkamon

ответ

1

Ваш тип возврата - String, но когда t равно null, вы возвращаете t, то есть AVLStringTreeNode.

Попробуйте это:

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

Спасибо, что сделал трюк! – Firkamon

1

Я думаю, вы должны заново написать, а код, как это -

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

Ошибка может произошло потому, что когда-то t.left утратившим. Поэтому он проверяет значение null.

Надеюсь, это поможет.
Большое спасибо.