因此,我正在遍历leetcode并偶然发现了“ N元树后置遍历”。 代码很简单,并且迭代基本上是预先颠倒的。我没有发现这个问题:
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val,List<Node> _children) {
val = _val;
children = _children;
}
};
public List<Integer> postorder(Node root) {
List<Integer> res = new ArrayList<Integer>();
// getPostOrder(root, res);
if(root == null)
return res;
Deque<Node> stack = new ArrayDeque<Node>();
stack.push(root);
while(!stack.isEmpty()){
Node tempNode = stack.poll();
res.add(tempNode.val);
for(Node childrenNode: tempNode.children){
stack.push(childrenNode);
}
}
Collections.reverse(res);
return res;
}
但是,由于某种原因,当我尝试考虑n元树的有序情况时,我的大脑变得一片空白。我对迭代特别好奇,尽管两者都很好。
我知道思维过程与常规树有序遍历相同,但是由于某些原因,在尝试思考编码方法时,我只是一片空白。 如果你们不能发布代码,您至少可以给我一个提示或思考的方式让我找出这种有序遍历吗?现在,我一直在困扰我。