2014-12-18 4 views
0

Я хочу найти листовой узел в несортированном двоичном дереве и иметь возможность использовать его в других функциях. у меня есть это как идеяКак найти листовой узел в двоичном дереве NOT SORTED

ОБНОВЛЕНО ****

node * leaf(node* root) 
{ 
    if(root==NULL) 
     return NULL; 
    if(root->left==NULL && root->right==NULL) 
     return root; 
    else 
    { leaf(root->left); 
     leaf(root->right); 
    } 
} 
+0

Знаете ли вы, что рекурсия? Вы прошли через двоичную теорию дерева? –

+1

Покажите нам свой код. Мы здесь не для того, чтобы делать домашние задания – Venkatesh

+0

обновлено, забыли. – CnewbieWannabePro

ответ

1

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

Если корень не имеет детей, то корень листовым узлом.

Если корень оставил дочернее устройство, то левый ребенок должен иметь листовой узел. То же, что и правильный ребенок.

node* leaf(node* root) { 
    if(root == NULL) 
     return NULL; 
    if(root->left == NULL && root->right == NULL) { 
     return root; 
    } else if(root->left != NULL) { 
     return leaf(root->left); 
    } else { 
     return leaf(root->right); 
    } 
} 
Смежные вопросы