查找值为x的结点

在一棵二叉树中查找值为X的结点,并返回这个结点地址。

如果二叉树是空树,直接返回NULL;

如果不为空,先判断根结点的值是不是我们要找的结点值,如果是直接返回根结点地址,如果不是,那就判断左右子树能不能找到;

如果左右子树都找不到,说明不存在要找的结点,返回NULL。

//二叉树查找值为x的结点
BTNode* TreeFind(BTNode* root, BTDataType x)
{
	if (root == NULL)
		return NULL;
	if (root->data == x)
	{
		return root;
	}
	BTNode* ret1 = TreeFind(root->left, x);//去左子树找
	if (ret1)
		return ret1;
	BTNode* ret2 = TreeFind(root->right, x);//去右子树找
	if (ret2)
		return ret2;
	return NULL;
}