llllmz

导航

701. 二叉搜索树中的插入操作c

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     struct TreeNode *left;
 *     struct TreeNode *right;
 * };
 */
struct TreeNode* insertIntoBST(struct TreeNode* root, int val) {
    if(!root){
        struct TreeNode* t=(struct TreeNode*)malloc(sizeof(struct TreeNode));
        t->left=NULL;
        t->right=NULL;
        t->val=val;
        return t;
    }
    struct TreeNode* temp=root;
    while(temp){
        if(temp->val>val){
            if(temp->left){
                temp=temp->left;
            }else{
                struct TreeNode* t=(struct TreeNode*)malloc(sizeof(struct TreeNode));
                t->left=NULL;
                t->right=NULL;
                t->val=val;
                temp->left=t;
                break;
            }
        }else{
            if(temp->right){
                temp=temp->right;
            }else{
                struct TreeNode* t=(struct TreeNode*)malloc(sizeof(struct TreeNode));
                t->left=NULL;
                t->right=NULL;
                t->val=val;
                temp->right=t;
                break;
            }
        }
    }
    return root;
}

结果:

posted on 2024-03-06 20:28  神奇的萝卜丝  阅读(17)  评论(0)    收藏  举报