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

【LeetCode】剑指 Offer(14)

目录

题目:剑指 Offer 32 - I. 从上到下打印二叉树 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 32 - I. 从上到下打印二叉树 - 力扣(Leetcode)

 

题目的接口:

/*** 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<int> levelOrder(TreeNode* root) {}
};

解题思路:

这道题让我们遍历二叉数,然后打印,

题目要求返回的是一个数组,

一开始遍历二叉树我第一个想到的是递归,

但很明显递归在这道题不好用,

那就只能用迭代去做,

我们可以利用队列先进先出的特性来实现遍历:

根据题意,我们需要从上到下遍历二叉数,

1. 将二叉树自上而下每一个节点指针入队;

2. 循环出队,出队时push_back进vector;

3. 当队列为空时,证明打印完成了,返回打印数组即可。

代码:

/*** 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<int> levelOrder(TreeNode* root) {//如果二叉树为空,返回空数组if(root == nullptr){return {};}//建一个队列存放二叉树节点queue<TreeNode*> q;vector<int> ans;//第一层的根节点q.push(root);//一直出队,直到队列为空while(!q.empty()){//记录队头TreeNode* cur = q.front();//将队头出队q.pop();//打印二叉树每一个节点的值ans.push_back(cur->val);//二叉数的每一层所有节点都push进队列if(cur->left != nullptr){q.push(cur->left);}if(cur->right != nullptr){q.push(cur->right);}}return ans;}
};

过啦!!!

 

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果喜欢本文的话,欢迎点赞和评论,写下你的见解。

如果想和我一起学习编程,不妨点个关注,我们一起学习,一同成长。

之后我还会输出更多高质量内容,欢迎收看。

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

相关文章:

  • Rman单实例迁移到单实例
  • 毕业设计 基于stm32舞台彩灯控制器设计app控制系统
  • 【MyBatis】篇一.
  • 【JavaScript速成之路】JavaScript流程控制
  • 18、基准测试,sysbench
  • 3D,点云拼接2
  • jmeter学习笔记一(http基础知识)
  • 【Java】CompletableFuture 并发顺序调度
  • 职场人必备的6款实用办公app,每一款都是心头爱
  • 小丑改造计划之复习一
  • final修饰符使用中遇到的一些问题
  • 好记又实用的获取电脑型号方法
  • @Transactional配置详解
  • 性能测试面试题汇总
  • vue权限控制和动态路由
  • 利用正则表达式删掉代码中的所有注释-pycharm为例
  • 【java基础】内部类、局部内部类、匿名内部类、静态内部类
  • react renderProps学习记录
  • 关于tf.gather函数batch_dims参数用法的理解
  • 日常操作linux常用命令
  • 【Java集合框架】篇二:Collection接口方法
  • PHP入门指南:简单易学的语法和丰富的调试工具与安全性最佳实践
  • 前端面试题--HTML篇
  • SpringBoot集成ElasticSearch,实现模糊查询,批量CRUD,排序,分页,高亮
  • 常用Swagger注解汇总
  • 关于 TypeScript 声明文件
  • SpringBoot学习-原理篇
  • 目标检测YOLOv5数据集怎么找?
  • 安卓短信自动填充踩坑
  • 【抽象类和接口的区别】