Given an n-ary tree, return the postorder traversal of its nodes’ values.
For example, given a 3-ary tree:
Return its postorder traversal as: [5,6,3,2,4,1].
题解:
package com.leetcode;
import java.util.*;
public class PostorderTraversal {
public static void main(String[] args) {
Node root = new Node(1);
root.children.add(new Node(3));
root.children.add(new Node(2));
root.children.add(new Node(4));
root.children.get(0).children.add(new Node(5));
root.children.get(0).children.add(new Node(6));
List<Integer> a = postorderTraversal(root);
Iterator<Integer> it = a.iterator();
while (it.hasNext())
System.out.print(it.next() + " ");
System.out.println();
}
public static List<Integer> postorderTraversal(Node root) {
if (root == null)
return new ArrayList<Integer>();
List<Integer> a = new ArrayList<Integer>();
Iterator<Node> it = root.children.iterator();
while (it.hasNext())
a.addAll(postorderTraversal(it.next()));
a.add(root.value);
return a;
}
}
class Node {
public Node(int value) {
this.value = value;
this.children = new ArrayList<Node>();
}
public int value;
public List<Node> children;
}