429.n-ary-tree-level-order-traversal.java 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. /*
  2. // Definition for a Node.
  3. class Node {
  4. public int val;
  5. public List<Node> children;
  6. public Node() {}
  7. public Node(int _val,List<Node> _children) {
  8. val = _val;
  9. children = _children;
  10. }
  11. };
  12. */
  13. class Solution {
  14. public List<List<Integer>> levelOrder(Node root) {
  15. LinkedList<List<Integer>> list = new LinkedList<>();
  16. if (root == null) return list;
  17. LinkedList<Node> currLV = new LinkedList<>();
  18. currLV.add(root);
  19. while (currLV.size() != 0) {
  20. LinkedList<Integer> li = new LinkedList<>();
  21. for (Node node : currLV) {
  22. li.add(node.val);
  23. }
  24. list.add(li);
  25. LinkedList<Node> nextLV = new LinkedList<>();
  26. while (currLV.size() != 0) {
  27. Node curr = currLV.poll();
  28. for (Node node : curr.children) {
  29. if (node != null) nextLV.add(node);
  30. }
  31. }
  32. currLV = nextLV;
  33. }
  34. return list;
  35. }
  36. }