版权声明:啦啦啦,不用于商业的话随便拿,记得带上博客地址http://blog.csdn.net/wjoker https://blog.csdn.net/wjoker/article/details/84075826
429 N叉树的层序遍历
描述
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树
:
返回其层序遍历
[
[1],
[3,2,4],
[5,6]
]
题解
- 和107,513类似
public List<List<Integer>> levelOrder(Node root) {
ArrayList<Node> arrayList1;
ArrayList<Node> arrayList2;
List<List<Integer>> result = new LinkedList<>();
if (root == null)
return result;
arrayList1 = new ArrayList<>();
arrayList1.add(root);
while (!arrayList1.isEmpty()){
arrayList2 = getNextLayNode(arrayList1);
List<Integer> nowList = new ArrayList<>();
for (Node node:arrayList1){
nowList.add(node.val);
}
result.add(nowList);
arrayList1 = arrayList2;
}
return result;
}
public ArrayList<Node> getNextLayNode(ArrayList<Node> arrayList1){
ArrayList<Node> arrayList2 = new ArrayList<>();
for(Node node:arrayList1){
for (Node subNode:node.children){
arrayList2.add(subNode);
}
}
return arrayList2;
}