leetcode-429-N-ary-Tree-Level-Order-Traversal

描述


Given an n-ary tree, return the level order traversal of its nodes’ values. (ie, from left to right, level by level).

For example, given a 3-ary tree:

img

We should return its level order traversal:

1
2
3
4
5
[
[1],
[3,2,4],
[5,6]
]

Note:

  1. The depth of the tree is at most 1000.
  2. The total number of nodes is at most 5000.

分析


已经记不清做了多少道同类型的题了,搞懂 107.
Binary Tree Level Order Traversal II
就够了。

解决方案1(Java)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;

public Node() {}

public Node(int _val,List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> result = new LinkedList<List<Integer>>();
DFS(root, 0, result);
return result;
}

private void DFS(Node node, int i, List<List<Integer>> result) {
if (node == null) {
return;
}
if (i == result.size()) {
result.add(result.size(), new LinkedList<Integer>());
}
result.get(i).add(node.val);
for (Node n: node.children) {
DFS(n, i+1, result);
}
}
}

相关问题


题目来源