题解 | #二叉排序树#

二叉排序树

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;
}

全部评论

相关推荐

uu们,拒offer时hr很生气怎么办我哭死
爱睡觉的冰箱哥:人家回收你的offer,或者oc后没给你发offer的时候可不会愧疚你,所以你拒了也没必要愧疚他。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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