题目
给定一个 N 叉树,返回其节点值的后序遍历。
例如,给定一个 3叉树 :
返回其后序遍历: [5,6,3,2,4,1].
分析
与二叉树的后序相同,只是需要对列表做处理
代码
/**
* 递归算法,最快的算法
* @param root
* @return
*/
public List<Integer> postorder(Node root) {
List<Integer> list = new ArrayList<>();
postorder(root,list);
return list;
}
private void postorder(Node node,List<Integer> list){
if(node == null){
return;
}
//后序遍历是遍历子树,再遍历根节点
List<Node> childrens = node.children;
for(Node n:childrens){
postorder(n,list);
}
list.add(node.val);
}