Skip to content

Commit 1c799c1

Browse files
committed
add
1 parent 2407253 commit 1c799c1

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

C++/add-one-row-to-tree.cpp

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Time: O(n)
2+
// Space: O(h)
3+
4+
/**
5+
* Definition for a binary tree node.
6+
* struct TreeNode {
7+
* int val;
8+
* TreeNode *left;
9+
* TreeNode *right;
10+
* TreeNode(int x) : val(x), left(NULL), right(NULL) {}
11+
* };
12+
*/
13+
class Solution {
14+
public:
15+
TreeNode* addOneRow(TreeNode* root, int v, int d) {
16+
if (d == 0 || d == 1) {
17+
auto node = new TreeNode(v);
18+
(d == 1 ? node->left : node->right) = root;
19+
return node;
20+
}
21+
if (root && d >= 2) {
22+
root->left = addOneRow(root->left, v, d > 2 ? d - 1 : 1);
23+
root->right = addOneRow(root->right, v, d > 2 ? d - 1 : 0);
24+
}
25+
return root;
26+
}
27+
};
28+

0 commit comments

Comments
 (0)