BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历
目录
102. 二叉树的层序遍历
107. 二叉树的层序遍历 II
103. 二叉树的锯齿形层序遍历
429. N 叉树的层序遍历
102. 二叉树的层序遍历
给你二叉树的根节点
root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。
class Solution {
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int>> res;queue<TreeNode*> q;if(root)q.push(root);while(!q.empty()){vector<int>temp;int size = q.size();while(size--){TreeNode* cur = q.front(); q.pop();temp.push_back(cur->val);if(cur->left)q.push(cur->left); //左右孩子存在则入队列if(cur->right)q.push(cur->right);}res.push_back(temp);}return res;}
};
107. 二叉树的层序遍历 II
给你二叉树的根节点
root
,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)class Solution { public:vector<vector<int>> levelOrderBottom(TreeNode* root) {vector<vector<int>> res;queue<TreeNode*> q;if(root)q.push(root);while(!q.empty()){vector<int>temp;int size = q.size();while(size--){TreeNode* cur = q.front(); q.pop();temp.push_back(cur->val);if(cur->left)q.push(cur->left); //左右孩子存在则入队列if(cur->right)q.push(cur->right);}res.push_back(temp);}reverse(res.begin(), res.end());return res;} };
103. 二叉树的锯齿形层序遍历
给你二叉树的根节点
root
,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。class Solution { public:vector<vector<int>> zigzagLevelOrder(TreeNode* root) {vector<vector<int>> res;queue<TreeNode*> q;if(root) q.push(root);int flag = 0;while(!q.empty()){int size = q.size();vector<int> temp;while(size--){TreeNode* cur = q.front();q.pop();temp.push_back(cur->val);if(cur->left) q.push(cur->left);if(cur->right) q.push(cur->right);}if(flag%2==1) // 多加入一个flag标志位判断是从左往右还是从右往左reverse(temp.begin(), temp.end());flag+=1;res.push_back(temp);}return res;} };
429. N 叉树的层序遍历
给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/n-ary-tree-level-order-traversal
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
class Solution {
public:vector<vector<int>> levelOrder(Node* root) {vector<vector<int>> res; // 存放返回结果queue<Node*> q;if(root)q.push(root);while(!q.empty()) {vector<int> temp;int size = q.size(); //获取当前队列中元素个数while(size--) //逐层遍历,将每一层的元素放入同一个数组,最终将该层元素数组放入res中{Node* cur = q.front(); //访问size个队头元素q.pop();temp.push_back(cur->val);for(Node* e : cur->children) //孩子全部入队列{q.push(e);}}res.push_back(temp);}return res;}
};
BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历相关推荐
- 刷题记录8---验证二叉搜索树+二叉树的层序遍历+从前序与中序遍历序列构造二叉树+二叉树展开为链表+二叉树的最近公共祖先
前言 所有题目均来自力扣题库中的hot 100,之所以要记录在这里,只是方便后续复习 98.验证二叉搜索树 题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树. 有效 二叉搜 ...
- Leetcode 103.二叉树的锯齿形层序遍历
难度:中等 频率:136 题目: 给定一个二叉树,返回其节点值的锯齿形层序遍历.(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行). 解题方法:改进的BPS[广度优先搜索] BP ...
- LeetCode高频题:二叉树的锯齿形(Z字形,之字形)层序遍历
LeetCode高频题:二叉树的锯齿形(Z字形,之字形)层序遍历 提示:本题是系列LeetCode的150道高频题,你未来遇到的互联网大厂的笔试和面试考题,基本都是从这上面改编而来的题目 互联网大厂们 ...
- 代码随想录【day 14 二叉树】| 层序遍历 226.翻转二叉树 101.对称二叉树
代码随想录[day 14 二叉树]| 层序遍历 226.翻转二叉树 101.对称二叉树 层序遍历 卡哥文解 视频讲解 题目链接:102.二叉树的层序遍历 解题思路 代码实现 题目链接:107.二叉树的 ...
- 二叉树的层序遍历_NC15 求二叉树的层序遍历
NC15 求二叉树的层序遍历 考过的企业 - 小米 题目描述 给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历) 例如:给定的二叉树是{3,9,20,#,#,15,7},该二叉树 ...
- l2-004 这是二叉搜索树吗?_LeetCode 例题精讲 | 11 二叉树转化为链表:二叉树遍历中的相邻结点...
本期例题: LeetCode 98. Validate Binary Search Tree 验证二叉搜索树(Medium) LeetCode 426. Convert Binary Tree to ...
- 47. Leetcode 107 - 二叉树的层次遍历 ii (二叉树-二叉树遍历)
给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 . (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)示例 1:输入:root = [3,9,20,null,null,15, ...
- LeetCode 102二叉树的层序遍历103二叉树锯齿形遍历104二叉树的最大深度
微信搜一搜:bigsai 大家都在关注的刷题.学习数据结构和算法宝藏项目 关注回复进群即可加入力扣打卡群,欢迎划水.近期打卡: LeetCode 97交错字符串(动态规划) LeetCode 98验证 ...
- Leetcode 129求根节点到叶节点数字之和、104二叉树的最大深度、8字符串转换整数(atoi)、82删除排序链表中的重复元素II、204二分查找、94二叉树的中序遍历、144二叉树的前序遍历
Top1:Leetcode 129求根节点到叶节点数字之和 官方题解:https://leetcode.cn/problems/sum-root-to-leaf-numbers/solution/qi ...
最新文章
- Opengl-阴影(分为定向光的和点光源的)
- 大道至简——失败也是积累
- 获取android设备唯一编号_android 获取手机设备的唯一码(IMIE )
- delphi XE 學習筆記二:TThread.CreateAnonymousThread
- unity实现图片轮播效果_Unity实现图片轮播组件
- 微型计算机中存储器分成哪几个等级?它们各有什么特点?用途如何?,《微机原理》复习思考题第十二章存储器.DOC...
- C++ DNN Opencv3.4 实现人脸计数和人脸检测
- iOS 5 编程(1)-图像视图、滑块和步进控件的使用(源码下载)
- 爬虫从入门到放弃——爬虫的基本原理
- 内核中的UDP socket流程(6)——sendto
- mysql truncate 授权_Oracle给用户授权truncatetable的实现方案
- 全网首发:FreeType加载字体图像的几个关键函数
- 聊一下《技术力量-一线技术团队成功启示录》
- 手机变身高清摄像头 DroidCamX完全使用教程
- 如何实现高性能的在线 PDF 预览
- 微信服务号认证收费 :一场激进的自卫战
- php app 银联支付,php银联网页支付实现方法
- leetcode 1114
- 计算机格式化为ntfs,WinXP下怎么把U盘格式化成NTFS格式?XP下把U盘格式化成NTFS格式图文教程...
- 利用特性、泛型、反射生成sql操作语句(待修改