LeetCode___590. N叉树的后序遍历&&589. N叉树的前序遍历

后序:

给定一个 N 叉树,返回其节点值的后序遍历

例如,给定一个 3叉树 :

 

LeetCode___590. N叉树的后序遍历&&589. N叉树的前序遍历

 

返回其后序遍历: [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);
			}
			
			
		}