题目:
给出一个二叉树,查找当前给出的元素x是否在二叉树中
分析:
二叉树的查找本质和二叉树的遍历相似,都可以用到递归的方法实现。
只需要将集中会出现的情况总结起来,找到递归出口即可完成该题:
第一种:
find_node(node,x)==NULL 当前的节点为空,返回null
find_node(node,x)==p 找到节点,返回当前节点
find_node(node->left,x)在左子树中找要求的节点
find_node(node->right,x)在右子树中找要求的节点
Node *find_Node(Node *node,char ch) { if(node==NULL) return NULL; else if(node->data==ch) return node; else { Node *p=find_Node(node->left, ch); if(p!=NULL) return p; else return find_Node(node->right, ch); } }