typedef struct TreeNode
{
int data;
struct TreeNode* left, *right;
}TNode,*BTree;
//由后序遍历的递归算法改编
bool PostOrder(BTree T, int x)
{
if (T != NULL)
{
//分别在T的左右子树递归的查找结点值为x的孩子结点
bool b1 = PostOrder(T->left, x);
bool b2 = PostOrder(T->right, x);
if (T->data == x)//找到了结点值为x的结点,返回true
return true;
if (b1 || b2)//如果结点为x是当前结点的孩子结点
{
printf("%d的父结点为:%d\n", x, T->data);
return true;//这里也返回true,向祖先结点表示,值为x的结点在你们的子树里
}
}
return false;//其他情况均返回false
}