题解 | #二叉排序树#

二叉排序树

https://www.nowcoder.com/practice/30a0153649304645935c949df7599602

#include <stdio.h>
#include <stdlib.h>

typedef struct TreeNode {
    int data;
    struct TreeNode* lchild;
    struct TreeNode* rchild;
} TreeNode;

TreeNode* createNode(int data) {
    TreeNode* root = (TreeNode*)malloc(sizeof(TreeNode));
    root->data = data;
    root->lchild = NULL;
    root->rchild = NULL;
    return root;
}

TreeNode* insert(TreeNode* root, int x, int father) {
    if (root == NULL) {
        root = createNode(x);
        printf("%d\n", father);
    } else if (root->data > x) {
        root->lchild = insert(root->lchild, x, root->data);
    } else {
        root->rchild = insert(root->rchild, x, root->data);
    }
    return root;
}

int main() {
    int n;
    while (scanf("%d", &n) != EOF) {
       TreeNode *root=NULL;
       for (int i=0; i<n; i++) {
            int x;
            scanf("%d",&x);
            root=insert(root, x,-1);
       }
    }
    return 0;
}

全部评论

相关推荐

06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
码农索隆:单休一个月少休息4天,一年就是48天,平时节假日,别人3天假期,单休的两天
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务