如何创建一棵用二叉链表存储的以root为根的二叉树?
二叉链表
1条回答 默认 最新
- |__WhoAmI__| 2022-12-20 21:19关注
#include <stdio.h> #include <stdlib.h> // 定义二叉树结点 typedef struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; } TreeNode; // 创建一棵二叉树 TreeNode* createBinaryTree(int *arr, int size, int index) { TreeNode *root = NULL; // 如果当前索引不越界 if (index < size) { // 创建新结点 root = (TreeNode*)malloc(sizeof(TreeNode)); root->val = arr[index]; root->left = NULL; root->right = NULL; // 递归创建左子树 root->left = createBinaryTree(arr, size, 2 * index + 1); // 递归创建右子树 root->right = createBinaryTree(arr, size, 2 * index + 2); } return root; } int main() { int arr[] = {1, 2, 3, 4, 5, 6, 7}; int size = sizeof(arr) / sizeof(int); // 创建二叉树 TreeNode *root = createBinaryTree(arr, size, 0); return 0; }
望采纳
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 yolov8边框坐标
- ¥15 matlab中使用gurobi时报错
- ¥15 WPF 大屏看板表格背景图片设置
- ¥15 这个主板怎么能扩出一两个sata口
- ¥15 不是,这到底错哪儿了😭
- ¥15 2020长安杯与连接网探
- ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
- ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
- ¥16 mybatis的代理对象无法通过@Autowired装填
- ¥15 可见光定位matlab仿真