二叉树递归插入函数代码C语言
时间: 2024-10-18 19:21:25 浏览: 29
二叉树递归非递归遍历 c语言源程序
5星 · 资源好评率100%
在C语言中,我们可以使用递归来实现二叉搜索树(BST)的插入操作。下面是一个简单的二叉搜索树节点结构体和插入函数的例子:
```c
// 定义二叉树节点结构
typedef struct TreeNode {
int val;
struct TreeNode* left;
struct TreeNode* right;
} TreeNode;
// 插入函数 - 使用递归
TreeNode* insertNode(TreeNode* root, int val) {
// 如果根节点为空,创建一个新的节点作为根
if (root == NULL) {
return (TreeNode*)malloc(sizeof(TreeNode));
root = new TreeNode();
root->val = val;
root->left = NULL;
root->right = NULL;
} else if (val < root->val) {
// 对左子树递归调用插入函数
root->left = insertNode(root->left, val);
} else {
// 对右子树递归调用插入函数
root->right = insertNode(root->right, val);
}
return root;
}
```
这个`insertNode`函数首先检查根是否为空,如果为空则新建一个节点,并将其设为根。然后,它会比较要插入的值和当前节点的值,如果新值小于当前值,则在左子树递归调用插入函数;反之,在右子树。这样通过不断地将问题分解为更小规模的相同问题(直到找到空节点),最终达到插入目的。
阅读全文