Skip to content

Commit 08c8ae2

Browse files
Update and rename insertIntoBST.cpp to insert_into_bst.cpp
1 parent 6d78e47 commit 08c8ae2

File tree

2 files changed

+58
-23
lines changed

2 files changed

+58
-23
lines changed

insertIntoBST.cpp

Lines changed: 0 additions & 23 deletions
This file was deleted.

insert_into_bst.cpp

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
/**
2+
* Definition for a binary tree node.
3+
* struct TreeNode {
4+
* int val;
5+
* TreeNode *left;
6+
* TreeNode *right;
7+
* TreeNode() : val(0), left(nullptr), right(nullptr) {}
8+
* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}
9+
* TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}
10+
* };
11+
*/
12+
class Solution {
13+
public:
14+
15+
//recursive
16+
TreeNode* insertIntoBST(TreeNode* root, int val) {
17+
18+
if(!root) return new TreeNode(val);
19+
20+
if(val < root->val) {
21+
root->left = insertIntoBST(root->left, val);
22+
}
23+
else {
24+
root->right = insertIntoBST(root->right, val);
25+
}
26+
return root;
27+
}
28+
29+
30+
//iterative
31+
TreeNode* insertIntoBST(TreeNode* root, int val) {
32+
33+
if(!root) return new TreeNode(val);
34+
35+
TreeNode *current = root;
36+
37+
while(current) {
38+
39+
if(val < current->val) {
40+
if(current->left)
41+
current = current->left;
42+
else {
43+
current->left = new TreeNode(val);
44+
break;
45+
}
46+
}
47+
else {
48+
if(current->right)
49+
current = current->right;
50+
else {
51+
current->right = new TreeNode(val);
52+
break;
53+
}
54+
}
55+
}
56+
return root;
57+
}
58+
};

0 commit comments

Comments
 (0)