C语言递归建立二叉树
时间: 2024-11-21 12:30:44 浏览: 21
C语言递归实现二叉树的建立.pdf
在C语言中,递归是一种常用的方法来构建二叉树。通常我们使用结构体表示节点,并通过指针链接节点之间的关系。以下是创建二叉搜索树的一个简单递归示例:
```c
// 定义二叉树结点
typedef struct TreeNode {
int val; // 节点值
struct TreeNode* left; // 左孩子
struct TreeNode* right; // 右孩子
} TreeNode;
// 创建一个新节点并插入到已排序的树中
TreeNode* insertIntoBST(TreeNode* root, int val) {
if (root == NULL) { // 如果根节点为空,新建一个节点作为当前根
return (TreeNode*)malloc(sizeof(TreeNode));
root = (TreeNode*)malloc(sizeof(TreeNode));
root->val = val;
root->left = NULL;
root->right = NULL;
} else if (val < root->val) { // 否则,如果值小于当前节点,向左子树递归
root->left = insertIntoBST(root->left, val);
} else { // 如果值大于等于当前节点,向右子树递归
root->right = insertIntoBST(root->right, val);
}
return root;
}
```
在这个例子中,`insertIntoBST`函数会根据值的大小不断递归地选择左子树或右子树,直到找到空的位置为止。注意每次递归结束时都会返回当前节点,这样可以确保整个树被正确构造。
阅读全文