LeetCode___590. N叉树的后序遍历&&589. N叉树的前序遍历
后序:
给定一个 N 叉树,返回其节点值的后序遍历。
例如,给定一个 3叉树
:
返回其后序遍历: [5,6,3,2,4,1]
.
==================================================================
思路:递归,传入一个List和Node类型,进行递归,将递归的值装入List中。
代码:
public static List<Integer> postorder(Node root) {
List<Integer> list = new ArrayList<Integer>();
postOrderTraverse(list,root);
return list;
}
//后序遍历
public static void postOrderTraverse(List<Integer> list,Node root){
if(root == null)
return ;
for(Node child : root.children){
postOrderTraverse(list,child);
}
list.add(root.val);
}
前序:
后序是先递归,在list.add。前序就是先list.add然后再递归。
代码:
public List<Integer> preorder(Node root) {
List<Integer> list = new ArrayList<Integer>();
postOrderTraverse(list,root);
return list;
}
//前序遍历
public static void postOrderTraverse(List<Integer> list,Node root){
if(root == null)
return ;
list.add(root.val);
for(Node child : root.children){
postOrderTraverse(list,child);
}
}