当前位置: 首页 > news >正文

每天一道leetcode:剑指 Offer 32 - II. 从上到下打印二叉树 II(适合初学者)

今日份题目:

从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。

示例

例如:
给定二叉树: `[3,9,20,null,null,15,7]`,

```
    3
   / \
  9  20
    /  \
   15   7
```

返回其层次遍历结果:

```
[
  [3],
  [9,20],
  [15,7]
]
```

提示

1. `节点总数 <= 1000`

题目思路

与上篇文章I中说的方法一样,都是使用BFS广度优先遍历对树进行层次遍历,与I不同处在于同层需要在一行vector中,由于队列中存在的元素是同一行的所有元素,所以每次对队列操作的时候,先插入一个空行(vector),然后在这个空行中放入同层元素。队列为空时操作结束,返回结果vector。

代码

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution 
{
public:vector<vector<int>> levelOrder(TreeNode* root) {vector<vector<int> > ans;if(root==NULL) return {};queue<TreeNode*> p;//BFSp.push(root);while(!p.empty()){int n=p.size();ans.push_back(vector<int> ());for(int i=0;i<n;i++){TreeNode* cur=p.front();p.pop();ans.back().push_back(cur->val);if(cur->left) p.push(cur->left);if(cur->right) p.push(cur->right);} }return ans;}
};

提交结果

 欢迎大家在评论区讨论,如有不懂的代码部分,欢迎在评论区留言!

http://www.lryc.cn/news/114827.html

相关文章:

  • vue动态生成行
  • IPC之一:使用匿名管道进行父子进程间通信的例子
  • 前端将页面转化为图片---进行下载导出、打印等功能
  • docker安装code-service在线开发vscode工具及node版本过低问题
  • C++ 多态深入解析
  • C#使用EmguCV播放视频
  • LeetCode150道面试经典题-买卖股票的最佳时机(简单)
  • 【积水成渊】CSS磨砂玻璃效果和渐变主题色文字
  • JVM、JRE、JDK三者之间的关系
  • input 标签的 type 属性有哪些值?分别表示什么意思?
  • (十五)大数据实战——hive的安装部署
  • MySQL安装和卸载
  • ELK、ELFK日志分析系统
  • JVM基础篇-StringTable
  • 探秘手机隐藏的望远镜功能:开启后,观察任何你想看的地方
  • 正运动亮相2023半导体设备材料与核心部件展示会,助力半导体产业高速高精应用
  • 如何在MongoDB中添加新用户
  • 幻读怎么复现
  • 无脑入门pytorch系列(二)—— torch.mean
  • ansible-kubeadm在线安装高可用K8S集群v1.19-v1.20版本
  • Cesium entity 渐隐渐显、闪烁
  • LISA:通过大语言模型进行推理分割
  • opencv基础40-礼帽运算(原始图像减去其开运算)cv2.MORPH_TOPHAT
  • php中的array_filter()函数
  • ArcGIS Pro基础:【按顺序编号】工具实现属性字段的编号自动赋值
  • neo4j终端操作
  • 【深度学习】在 MNIST实现自动编码器实践教程
  • SpringBoot3基础用法
  • 6、移除链表元素
  • 大厂容器云实践之路(一)