###### tags: `LeetCode` `Recursion` `Tree` `Medium` # LeetCode #701 [Insert into a Binary Search Tree](https://leetcode.com/problems/insert-into-a-binary-search-tree/) ### (Medium) ``` /** * 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); insert(root, val); return root; } TreeNode* insert(TreeNode* node, int val){ if(!node)return new TreeNode(val); if(node->val>val)node->left=insert(node->left, val); else if(node->val<val)node->right=insert(node->right, val); return node; } }; ```