代码随想录-06-二叉树-05.05 N叉树的层序遍历
N叉树的层序遍历
#模板题
题目描述
给定一个 N 叉树,返回其节点值的_层序遍历_。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
具体思路
- 层序遍历;
- 在寻找左右孩子的过程中,改成了遍历一个孩子
List
;
具体代码
/*
// Definition for a Node.
class Node {
public int val;
public List<Node> children;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, List<Node> _children) {
val = _val;
children = _children;
}
};
*/
class Solution {
private Queue<Node> q = new ArrayDeque<>();
private List<List<Integer>> res = new ArrayList<>();
public List<List<Integer>> levelOrder(Node root) {
if (root == null) {
return res;
}
q.add(root);
while (!q.isEmpty()) {
int size = q.size();
List<Integer> temp = new ArrayList<>();
while (size > 0) {
size--;
Node cur = q.remove();
for (Node n : cur.children) {
q.add(n);
}
temp.add(cur.val);
}
res.add(temp);
}
return res;
}
}