提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
力扣leetcode N叉树的遍历
题目链接
一、题目1: N 叉树的前序遍历
解题思路
参看 二叉树的三种遍历
解题代码
/*
// 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:
void Traverse(vector<int>& ret, Node* root)
{
if(!root)
return;
//先将当前节点入数组,再进行子节点遍历 符合先序
ret.push_back(root->val);
for(auto tree : root->children)
{
Traverse(ret, tree);
}
}
vector<int> preorder(Node* root) {
vector<int> ret;
Traverse(ret, root);
return ret;
}
};
二、题目2
解题思路
参看 二叉树的三种遍历
解题代码
/*
// 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:
void Traverse(vector<int>& ret, Node* root)
{
if(!root)
return;
//先遍历子节点
for(auto tree : root->children)
{
Traverse(ret, tree);
}
ret.push_back(root->val);
}
vector<int> postorder(Node* root) {
vector<int> ret;
Traverse(ret, root);
return ret;
}
};