本文主要是介绍代码随想录算法训练营第十五天| 637.二叉树的层平均值 429. N 叉树的层序遍历 515. 在每个树行中找最大值,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
429.N叉树的层序遍历
public List<List<Integer>> levelOrder(Node root) {
List<List<Integer>> result = new ArrayList<>();
if (root == null) {
return result;
}
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
List<Integer> levelList = new ArrayList<>();
for (int i = 0; i < size; i++) {
Node node = queue.poll();
levelList.add(node.val);
for (Node child : node.children) {
queue.offer(child);
}
}
result.add(levelList);
}
return result;
}
515. 在每个树行中找最大值
public List<Integer> largestValues(TreeNode root) {
Integer max = new Integer(0);
List<Integer> res = new ArrayList<>();
if (root == null) {
return res;
}
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
int size = queue.size();
List<Integer> level = new ArrayList<>();
for (int i = 0; i < size; i++) {
TreeNode cur = queue.poll();
level.add(cur.val);
if (cur.left != null) {
queue.offer(cur.left);
}
if (cur.right != null) {
queue.offer(cur.right);
}
}
if (level.size() != 0) {
max = level.get(0);
}
for (int i = 0; i < level.size(); i++) {
if (level.get(i) > max) {
max = level.get(i);
}
}
res.add(max);
}
return res;
}
这篇关于代码随想录算法训练营第十五天| 637.二叉树的层平均值 429. N 叉树的层序遍历 515. 在每个树行中找最大值的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!