给定一个 N 叉树,返回其节点值的后序遍历。
例如,给定一个 3叉树
:
返回其后序遍历: [5,6,3,2,4,1]
.
第一种递归写法:
发现递归函数与递归返回值之间的矛盾,就应该重新建立一个返回值为void的函数
带上递归代码:
/*
// Definition for a Node.
class Node {
public:
int val;
vector<Node*> children;
Node() {}
Node(int _val, vector<Node*> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public:
vector<int> s;
vector<int> postorder(Node* root) {
pos(root);
return s;
}
void pos(Node* root){
if(root==NULL)
return ;
for(int i = 0;i<root->children.size();i++){
pos(root->children[i]);
}
s.push_back(root->val);
}
};
等下附上非递归代码