一、层序
. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/n-ary-tree-level-order-traversal/
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<vector<int>> ans;
Node* q[10010];
vector<vector<int>> levelOrder(Node* root) {
if (root == nullptr) return ans;
int hh = 0, tt = -1;
q[++tt] = root;
while (hh <= tt) {
int sz = tt - hh + 1;
vector<int> level;
while (sz--) {
Node* top = q[hh++];
level.push_back(top->val);
for (auto x : top->children) q[++tt] = x;
}
ans.push_back(level);
}
return ans;
}
};
二、后续
. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/n-ary-tree-postorder-traversal/description/
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<int> ans;
void dfs(Node* root) {
if (root == nullptr) return;
for (auto x : root->children)
dfs(x);
ans.push_back(root->val);
}
vector<int> postorder(Node* root) {
dfs(root);
return ans;
}
};
三、先序
. - 力扣(LeetCode). - 备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。https://leetcode.cn/problems/n-ary-tree-preorder-traversal/description/
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val) {
val = _val;
}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<int> ans;
void dfs(Node* root) {
if (root == nullptr) return;
ans.push_back(root->val);
for (auto x : root->children)
dfs(x);
}
vector<int> preorder(Node* root) {
dfs(root);
return ans;
}
};