题解:
/**
* * 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;
}
};