701. 二叉搜尋樹中的插入操作

INGNIGHT發表於2020-09-30

連結:701. 二叉搜尋樹中的插入操作

題解:

/**
 *  * 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) {
            TreeNode* tmp = root;
            while(tmp) {
                if(tmp->val < val) {
                    if(tmp->right == nullptr) {
                        tmp->right = new TreeNode(val);
                        break;
                    } else {
                        tmp = tmp->right;
                    }
                } else {
                    if(tmp->left == nullptr) {
                        tmp->left = new TreeNode(val);
                        break;
                    } else {
                        tmp = tmp->left;
                    }
                }
            }
            if(root == nullptr) {
                return new TreeNode(val);
            }
            return root;
        }
};

 

相關文章