Insert to a binary tree, recursive and iterative

Recursive:

TreeNode* insertIntoBST(TreeNode* root, int val) {
        if(!root){
           return new TreeNode(val);
        }
        
        if(root->val < val){
            root->right = insertIntoBST(root->right, val);
        }
        else{
            root->left = insertIntoBST(root->left, val);
        }
        
        return root;
    }

Iterative:

TreeNode* insertIntoBST(TreeNode* root, int val) {
        if(!root){
           return new TreeNode(val);
        }
        
        TreeNode *cur = root;
        
        while(cur){
            if(cur->val < val){
                if(cur->right == NULL){
                    cur->right = new TreeNode(val);
                    break;
                }
                else{
                    cur = cur->right;
                }
            }
            else{
                if(cur->left == NULL){
                    cur->left = new TreeNode(val);
                    break;
                }
                else{
                    cur = cur->left;
                }
            }
        }
        
        return root;
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容