0
点赞
收藏
分享

微信扫一扫

<leetcode>701.二叉搜索树中的插入操作——数、迭代

四月天2021 2022-04-14 阅读 27

给定二叉搜索树(BST)的根节点 root 和要插入树中的值 value ,将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 输入数据 保证 ,新值和原始二叉搜索树中的任意节点值都不同。

注意,可能存在多种有效的插入方式,只要树在插入后仍保持为二叉搜索树即可。 你可以返回 任意有效的结果 。

解答:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode() : val(0), left(nullptr), right(nullptr) {}
 *     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
 *     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
 * };
 */
class Solution {
public:
    TreeNode* insertIntoBST(TreeNode* root, int val) {
        if(!root) return new TreeNode(val);
        TreeNode* head = root;
        while(root){
            if(root->val > val){
                if(root->left == nullptr){
                    root->left = new TreeNode(val);
                    break;
                }else{
                    root = root->left;
                }
            }else{
                if(root->right == nullptr){
                    root->right = new TreeNode(val);
                    break;
                }else{
                    root = root->right;
                }
            }
        }
        return head;
    }
};
举报

相关推荐

0 条评论