二叉树层序遍历集合
Posted 张小小凡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树层序遍历集合相关的知识,希望对你有一定的参考价值。
前言
每天一道算法题,大厂offer随便挑!
从今天开始,我们一起来刷LeetCode上的算法题吧,每天最少一道。321。。。上代码
二叉树遍历系列
关联题目
LeetCode上二叉树层序遍历系列的题都整理在下方了,一起练习,更方便理解和记忆。
-
102 二叉树的层序遍历 -
107 二叉树的层次遍历II -
199 二叉树的右视图 -
637 二叉树的层平均值 -
429 N叉树的前序遍历 -
515 在每个树行中找最大值 -
116 填充每个节点的下一个右侧节点指针 -
117 填充每个节点的下一个右侧节点指针II
107 二叉树的层次遍历 II
题目要求:给定一个二叉树,返回其节点值自底向上的层次遍历。(即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
public List<List<Integer>> method(TreeNode root) {
List<List<Integer>> ret = new LinkedList<>();
if (root == null) return ret;
LinkedList<TreeNode> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
ArrayList<Integer> list = new ArrayList<>();
int size = queue.size();
for (int i = 0; i < size; i++) {
TreeNode node = queue.poll();
list.add(node.val);
TreeNode left = node.left, right = node.right;
if (left != null) {
queue.offer(left);
}
if (right != null) {
queue.offer(right);
}
}
ret.add(0, list);
}
return ret;
}
注意每次向队列中加元素是加在最后面,每次取元素取第一个,取size个 正好取完上次加进去的元素
199 . 二叉树的右视图
题目要求:给定一棵二叉树,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。
解题思路和上面大致一样,看看自己能不能想出来。剩下的题目自己去LeetCode官网提交吧。
长按图片关注我吧!
以上是关于二叉树层序遍历集合的主要内容,如果未能解决你的问题,请参考以下文章