https://leetcode.com/problems/insert-into-a-binary-search-tree/
1. Use iteration:
///*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/class Solution {public:TreeNode* insertIntoBST(TreeNode* root, int val) {TreeNode* insert = new TreeNode(val);if(!root){return insert;}TreeNode* curr = root;while(curr){if(val > curr->val){if(curr->right)curr = curr->right;else{curr->right = insert;break;}} else if (val < curr->val){if(curr->left)curr = curr->left;else{curr->left = insert;break;}}}return root;}};
2. Use BST:
//136 ms 48.8 MB/*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/class Solution {public:TreeNode* insertIntoBST(TreeNode* root, int val) {if(!root){return new TreeNode(val);}if(val > root->val)root->right = insertIntoBST(root->right, val);else if (val < root->val)root->left = insertIntoBST(root->left, val);return root;}};
