求问一个二叉树的查询问题

求问一个问题:

首先,二叉树的定义:代码如下:

typedef struct BiNode
{
    int data;
    struct BiNode *left,*right;
}BiNode,*BiTree;

读入代码如下:

int InsertData(BiTree *t,int data)
{
    if(*t==NULL)
    {
        *t=(BiTree)malloc(sizeof(BiNode));
        (*t)->data=data;
        (*t)->left=NULL;
        (*t)->right=NULL;
        return OK;
    }
    else
    {
        if((*t)->data < data)
        {
            InsertData(&((*t)->right), data);
            return OK;
        }
        else
        {
            InsertData(&((*t)->left), data);
            return OK;
        }
    }
}

在树中查找某个值,返回地址的函数如下:

BiNode *FindData(BiNode *t,int data)
{
    if(t)
    {
        if(t->data==data)
            return t;
        else if(t->data > data)
        {
            t=FindData(t->left,data);
            return t;
        }
        else
        {
            FindData(t->right,data);
        }
    }
    else
        return NULL;
}

为什么在查询右子树的代码中,直接写FindData(t->right,data),最终也能查找到该值的地址,可是直接这么写,是没有返回值的呀,为什么可以跑出来?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值