Leetcode—102.二叉树的层序遍历【中等】

2023每日刷题(二十四)

Leetcode—102.二叉树的层序遍历

在这里插入图片描述

C语言BFS实现代码

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
/*** Return an array of arrays of size *returnSize.* The sizes of the arrays are returned as *returnColumnSizes array.* Note: Both returned array and *columnSizes array must be malloced, assume caller calls free().*/
#define MAXSIZE 2003int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes) {*returnSize = 0;if(root == NULL) {return NULL;}*returnColumnSizes = (int *)malloc(sizeof(int) * MAXSIZE);int** ans = (int **)malloc(sizeof(int *) * MAXSIZE);struct TreeNode** queue = (struct TreeNode**)malloc(sizeof(struct TreeNode*) * MAXSIZE);int front = 0, rear = 0;int len = 0;int pos = 0;queue[rear++] = root;while(front != rear) {len = rear - front;ans[*returnSize] = (int *)malloc(sizeof(int) * len);int cnt = 0;while(len > 0) {len--;struct TreeNode* tmp = queue[front++];ans[*returnSize][cnt++] = tmp->val;if(tmp->left) {queue[rear++] = tmp->left;}if(tmp->right) {queue[rear++] = tmp->right;}}(*returnColumnSizes)[*returnSize] = cnt;(*returnSize)++;}return ans;
}

运行结果

在这里插入图片描述

C++BFS实现代码

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

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/185750.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenHarmony,奏响中国基础软件的“光辉岁月”

梦想需要多久的时间&#xff0c;多少血和泪&#xff0c;才能慢慢实现&#xff1f; 天地间任我展翅高飞&#xff0c;谁说那是天真的预言&#xff1f; 《光辉岁月》歌词中的这两个问题&#xff0c;恰好可以送给今天的中国基础软件事业。 曾几何时&#xff0c;我们认为中国基础软件…

16.字符连接

#include<stdio.h> #include <cstring> int main(){char s1[44];char s2[33];scanf("%s",s1);scanf("%s",s2);strcat(s1,s2) ;printf("连接两个字符为&#xff1a;%s ",s1); return 0;}

【ES专题】Logstash与FileBeat详解以及ELK整合详解

目录 前言阅读对象阅读导航前置知识笔记正文一、ELK架构1.1 经典的ELK1.2 整合消息队列Nginx架构 二、LogStash介绍2.1 Logstash核心概念2.1.1 Pipeline2.1.2 Event2.1.3 Codec (Code / Decode)2.1.4 Queue 2.2 Logstash数据传输原理2.3 Logstash的安装&#xff08;以windows为…

Python测试框架之pytest快速入门

pytest是一种流行的Python测试框架&#xff0c;支持创建简单的单元测试&#xff0c;也支持创建复杂的功能和集成测试。它提供了一系列有用的功能&#xff0c;能够方便地编写&#xff0c;组织和运行测试用例&#xff0c;并生成丰富的测试报告。 pytest的主要特点包括&#xff1…

软件测试面试题【2023最新合集】

收集了各大公司的面试经验&#xff0c;现整理出来&#xff0c;希望能给正在找工作的志同道合的小伙伴一些指引&#xff0c;本文会持续更新的哦。 1、 CPU 和 GPU的区别 一个是通用计算&#xff0c;一个是专用计算。 CPU主要负责操作系统和应用程序&#xff0c;GPU主要负责跟…

Python爬虫框架Scrapy:实现高效数据抓取

目录 一、引言 二、Scrapy框架概述 1、Scrapy框架特点 2、Scrapy框架结构 三、Scrapy框架的使用 1、安装Scrapy框架 2、创建Scrapy项目 3、创建爬虫 4、运行爬虫 四、Scrapy框架常见问题及解决方案 1、请求被网站封禁 2、处理动态加载的页面 3、避免被网站检测到爬…

进程管理(二)

进程并发制约关系及临界区 (3)比如A的n为MAX,此时B执行buf[Max]出错。 临界区是访问临界资源的代码。 par并发执行 进程同步机制准则 让权等待:主动让位 进程互斥访问临界资源的软件解决方案 算法1——设置访问编号 no_op是空指令,做空操作,空转指令。no_op依然会占…

11.8 33oj 模拟赛总结(时间安排 + 题解(数学 + 二分 + 括号匹配DP + 性质DP))

文章目录 考试时间及策略考试结果赛后总结题解Balance AddictsBoboniu and StringBracket InsertionConveyor 考试时间及策略 7:40 - 8:00 开题。T1 应该是个dp, 但是好像有点恶心。T2是个神秘构造。T3是个求随机括号匹配的概率&#xff0c;一眼应该是个 n 3 n^3 n3 的…

RabbitMQ 消息中间件

消息中间件 1、简介 消息中间件也可以称消息队列&#xff0c;是指用高效可靠的消息传递机制进行与平台无关的数据交流&#xff0c;并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息队列模型&#xff0c;可以在分布式环境下扩展进程的通信。 当下主流的消息中间…

YOLOX: Exceeding YOLO Series in 2021(2021.8)

文章目录 AbstractIntroduction介绍前人的工作提出问题解决 YOLOXYOLOX-DarkNet53Implementation detailsYOLOv3 baselineDecoupled headStrong data augmentationAnchor-freeMulti positivesSimOTAEnd-to-end YOLOOther BackbonesModified CSPNet in YOLOv5Tiny and Nano dete…

深入理解JVM虚拟机第二十二篇:详解JVM当中与操作数栈相关的字节码指令

大神链接&#xff1a;作者有幸结识技术大神孙哥为好友&#xff0c;获益匪浅。现在把孙哥视频分享给大家。 孙哥链接&#xff1a;孙哥个人主页 作者简介&#xff1a;一个颜值99分&#xff0c;只比孙哥差一点的程序员 本专栏简介&#xff1a;话不多说&#xff0c;让我们一起干翻J…

C++ —— map 和 multimap

一、map 1.介绍 1. map是关联容器&#xff0c;它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元 素。 2. 在map中&#xff0c;键值key通常用于排序和惟一地标识元素&#xff0c;而值value中存储与此键值key关联的内容。键值key和值value的类型可能不同&am…

【Linux精讲系列】——vim详解

​作者主页 &#x1f4da;lovewold少个r博客主页 ⚠️本文重点&#xff1a;c入门第一个程序和基本知识讲解 &#x1f449;【C-C入门系列专栏】&#xff1a;博客文章专栏传送门 &#x1f604;每日一言&#xff1a;宁静是一片强大而治愈的神奇海洋&#xff01; 目录 目录 ​作者…

【教3妹学编程-算法题】 在树上执行操作以后得到的最大分数

3妹&#xff1a;2哥&#xff0c;今日都立冬了&#xff0c; 可是天气一点都不冷。 2哥 : 立冬了&#xff0c;晚上要不要一起出去吃饺子&#xff1f;&#x1f95f; 3妹&#xff1a;好呀好呀&#xff0c;2哥请吃饺子喽 2哥 : 歪歪&#xff0c;我说的是一起出去吃&#xff0c;没说我…

CSS实现鼠标移至图片上显示遮罩层及文字效果

效果图&#xff1a; 1、将遮罩层html代码与图片放在一个div 我是放在 .proBK里。 <div class"proBK"><img src"../../assets/image/taskPro.png" class"proImg"><div class"imgText"><h5>用户在线发布任务&l…

另辟蹊径者 PoseiSwap:背靠潜力叙事,构建 DeFi 理想国

前不久&#xff0c;灰度在与 SEC 就关于 ETF 受理的诉讼案件中&#xff0c;以灰度胜诉告终。灰度的胜利&#xff0c;也被加密行业看做是加密 ETF 在北美地区阶段性的胜利&#xff0c; 该事件也带动了加密市场的新一轮复苏。 此前&#xff0c;Nason Smart Money 曾对加密市场在 …

SHCTF-校外赛道

SHCTF-校外赛道 [WEEK1]babyRCE 1 (1)more:一页一页的显示档案内容2 (2)less:与 more 类似&#xff0c;但是比 more 更好的是&#xff0c;他可以[pg dn][pg up]翻页3 (3)head:查看头几行4 (4)tac:从最后一行开始显示&#xff0c;可以看出 tac 是 cat 的反向显示5 (5)tail:查看…

【Springboot】Vue3-Springboot引入JWT实现登录校验以及常见的错误解决方案

文章目录 前言一、JWT简单介绍二、token校验设计思路三、使用步骤Springboot部署JWT引入依赖&#xff1a;创建登录实体类后端&#xff1a;LoginController.java路由守卫函数 四、问题 前言 项目版本&#xff1a; 后端&#xff1a; Springboot 2.7、 Mybatis-plus、Maven 3.8.1…

JavaFX入门和网格布局面板的使用,Dao层交互,舞台与场景切换以及其他控件的使用

网格布局 将整个面板划分为若干个格子 , 每个格子的大小是一样的 , 每个格子中可以放置一个控件&#xff08;布局&#xff09; , 类似于表格的方式。在网格布局 中放入控件的时候 , 还需要指定位置。 GridPane gridPane new GridPane(); 我们将要排出这个布局 , 也就是登陆页…

JVM之jinfo虚拟机配置信息工具

jinfo虚拟机配置信息工具 1、jinfo jinfo&#xff08;Configuration Info for Java&#xff09;的作用是实时地查看和调整虚拟机的各项参数。 使用jps -v 可以查看虚拟机启动时显示指定的参数列表&#xff0c;但是如果想知道未被显示指定的参数的系统默认值&#xff0c;除 …