#include <stdio.h>
 #include <stdlib.h>
  
 // 定义二叉树节点结构体
 typedef struct TreeNode {
     int value;
     struct TreeNode *left;
     struct TreeNode *right;
 } TreeNode;
  
 // 创建二叉树节点的函数
 TreeNode* createNode(int value) {
     TreeNode* node = (TreeNode*)malloc(sizeof(TreeNode));
     if (node == NULL) {
         printf("Memory allocation failed\n");
         exit(EXIT_FAILURE);
     }
     node->value = value;
     node->left = NULL;
     node->right = NULL;
     return node;
 }
  
 // 插入左子节点的函数
 void insertLeft(TreeNode* node, int value) {
     if (node == NULL) {
         printf("Node cannot be NULL\n");
         exit(EXIT_FAILURE);
     }
     node->left = createNode(value);
 }
  
 // 插入右子节点的函数
 void insertRight(TreeNode* node, int value) {
     if (node == NULL) {
         printf("Node cannot be NULL\n");
         exit(EXIT_FAILURE);
     }
     node->right = createNode(value);
 }
  
 // 主函数,用于演示二叉树的创建
 int main() {
     // 创建根节点
     TreeNode* root = createNode(1);
  
     // 插入左子节点
     insertLeft(root, 2);
  
     // 插入右子节点
     insertRight(root, 3);
  
     // 以此类推,可以继续插入更多的节点
  
     // 清理内存
     free(root);
     return 0;
 }