编写函数Father,对二叉树T中的给定节点P,返回P的父节点指针;若P为根节点,返回NULL。(C语言)

struct TreeNode *Father(struct TreeNode *T,struct TreeNode *p){/*根据已知节点求父节点的核心代码*/
    if(T==NULL||T==p||p==NULL){/*T==p说明p是根节点,所有没有父节点*/
    	return NULL;
	}
	if(T->left==p||T->right==p){/*在递归过程中除根节点以外的所有节点总会先被这句代码检查一次,所以T==P只会在根节点处可能被成功触发*/
		return T;
	}
	struct TreeNode *temp;
	temp=Parent(T->left,p);/*先在左边找*/
	if(temp!=NULL){/*左边为空表示没找到*/
		return temp;
	}else{/*所以再去右边找*/
		return Parent(T->right,p);
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值