Skip to content

Commit efa381e

Browse files
committed
Add 897-IncreasingOrderSearchTree.cpp
1 parent bc78ae5 commit efa381e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
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+
void dfs(TreeNode* node, std::vector<int> &v){
16+
if(node == nullptr){return;}
17+
dfs(node->left, v);
18+
v.push_back(node->val);
19+
dfs(node->right, v);
20+
}
21+
22+
23+
TreeNode* increasingBST(TreeNode* root) {
24+
std::vector<int> v;
25+
dfs(root, v);
26+
TreeNode* res = nullptr;
27+
TreeNode* idx = nullptr;
28+
for(int p = 0; p < v.size(); p++){
29+
TreeNode* tn = new TreeNode;
30+
tn->val = v[p];
31+
tn->left = nullptr; tn->right = nullptr;
32+
if(p == 0){res = tn; idx = tn;}
33+
else{idx->right = tn; idx = tn;}
34+
}
35+
36+
return res;
37+
}
38+
};

0 commit comments

Comments
 (0)