查找二叉树中值为x的结点,用中序递归遍历,c语言
时间: 2024-09-22 09:08:14 浏览: 58
查找二叉树中值为`x`的节点,可以使用中序递归遍历的方式。在C语言中,这种算法通常会分为三个部分:
1. **递归函数**:定义一个名为`search`的函数,它接受两个参数 - 树的根节点`node`和目标值`target`。
2. **基本情况**:如果当前节点为空(`node == NULL`),说明已经遍历到了叶子节点或者未找到目标值,返回`NULL`表示未找到。
3. **递归查找**:如果当前节点的值等于目标值`x`,则找到了目标节点,返回该节点;若`node->value > x`,说明目标值应在左子树中,所以对左子树继续调用`search`函数;若`node->value < x`,说明目标值应在右子树中,对右子树调用`search`。
以下是简单的C语言代码实现:
```c
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
};
struct TreeNode* searchInBST(struct TreeNode* root, int x) {
if (root == NULL || root->val == x) {
return root;
}
if (root->val > x) {
return searchInBST(root->left, x);
} else {
return searchInBST(root->right, x);
}
}
```
阅读全文