Skip to content

Commit d9d12fe

Browse files
authored
Create n-ary-tree-preorder-traversal.cpp
1 parent 7c31a0b commit d9d12fe

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

C++/n-ary-tree-preorder-traversal.cpp

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
// Time: O(n)
2+
// Space: O(h)
3+
4+
/*
5+
// Definition for a Node.
6+
class Node {
7+
public:
8+
int val;
9+
vector<Node*> children;
10+
11+
Node() {}
12+
13+
Node(int _val, vector<Node*> _children) {
14+
val = _val;
15+
children = _children;
16+
}
17+
};
18+
*/
19+
class Solution {
20+
public:
21+
vector<int> preorder(Node* root) {
22+
if (!root) {
23+
return {};
24+
}
25+
vector<int> result;
26+
vector<Node*> stack{root};
27+
while (!stack.empty()) {
28+
auto node = stack.back(); stack.pop_back();
29+
result.emplace_back(node->val);
30+
for (auto rit = node->children.rbegin();
31+
rit != node->children.rend();
32+
++rit) {
33+
if (*rit) {
34+
stack.emplace_back(*rit);
35+
}
36+
}
37+
}
38+
return result;
39+
}
40+
};

0 commit comments

Comments
 (0)