Solution #1: Here is the code,
int isAncestor(struct node* root, int n) { if(root == NULL) return 0; if(root->data == n) return 1; if(isAncestor(root->left, n) || isAncestor(root->right, n)) { printf("%d\n", root->data); return 1; } return 0; }
1 comment:
How about this code which does this without recursion:
void printAncestors( struct node *root, int num )
{
if ( root == NULL )
return ;
while(1)
{
if( root->val == num)
return ;
printf("%d\t",root->val);
if( root->val > num )
root = root->left ;
else
root = root->right ;
}
}
Post a Comment