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);
}
}
编写函数Father,对二叉树T中的给定节点P,返回P的父节点指针;若P为根节点,返回NULL。(C语言)
最新推荐文章于 2023-03-15 10:59:42 发布