2013-10-11 1 views
0

найти узел в двоичном дереве в порядке порядка и вернуть его PS: двоичное дерево может содержать два узла с одинаковым значением. легко сделать это в предзаказа образомНайти узел с заданным значением в двоичном дереве в порядке порядка и вернуть его

Узла находку (корневой узел, внутр VAL) {...}

кто может поделиться решением?

+0

Где вы застряли? – smk

+0

@smk я попытался решить его рекурсивно, как только я найду узел, как остановить и вернуть его ? – Nathan

ответ

2

Havent тщательно проверил его, но этот код должен работать.

public TreeNode find(TreeNode cur,int val) { 

     TreeNode result = null; 
     if(cur.left != null) 
      result = find(cur.left,val); 


     if(cur.value == val) 
      return cur; 
     if(result ==null && cur.right != null) 
      result = find(cur.right,val); 

     return result; 

    } 
+0

спасибо немного изменить до cur.value == val u также нужно проверить, если результат == null – Nathan

0
public static int treeSearch(Node head, int element){ 

     if(head.value==element) 
      return 1; 

     else { 
       if (head.left != null) 
       return inOrderSearch(head.left, element); 

       else if (head.right != null) 
       return treeSearch(head.right, element); 
     } 
    return 0; 
} 
Смежные вопросы