Nary-Tree input serialization is represented in their level order traversal. Each group of children is separated by the null value (See examples)
Input: root = [1,null,3,2,4,null,5,6]
Output: [5,6,3,2,4,1]
Input: root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]
Output: [2,6,14,11,7,3,12,8,4,13,9,10,5,1]
/*
// 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> v;
void traverse(Node *root)
{
if (root == NULL)
{
return;
}
for (int i = 0; i < root->children.size(); i++)
{
traverse(root->children[i]);
}
v.push_back(root->val);
return;
}
vector<int> postorder(Node *root)
{
traverse(root);
return v;
}
};