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

leetcode做题笔记102. 二叉树的层序遍历

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

思路一:递归

int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){int** ans=(int**)malloc(sizeof(int*)*2000);*returnSize=0;if(!root) return NULL;int columnSizes[3000];struct TreeNode* queue[3000];int rear=0;int head=0;queue[rear++]=root;while(rear!=head){ans[(*returnSize)]=(int*)malloc(sizeof(int)*(rear-head));columnSizes[(*returnSize)]=rear-head;int start=head;head=rear;for(int i=start;i<head;i++){ans[(*returnSize)][i-start]=queue[i]->val;if(queue[i]->left) queue[rear++]=queue[i]->left;if(queue[i]->right) queue[rear++]=queue[i]->right;}(*returnSize)++;}*returnColumnSizes=(int*)malloc(sizeof(int)*(*returnSize));for(int i=0;i<*returnSize;i++) (*returnColumnSizes)[i]=columnSizes[i];return ans;
}

分析:

本题要求二叉树的层序遍历,可想到使用BFS算法,将二叉树每层放入数组中最后输出数组,可想到利用队列插入队尾删除队首的特性模拟队列记录每层的数再输出

总结:

本题考察二叉树的层序遍历,利用队列的特性可以解决

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

相关文章:

  • python编写四画面同时播放swap视频
  • 用XSIBackup为VMware ESXi打造完美备份方案
  • React 项目中引入msal验证以及部分报错处理
  • Unity3D 2021 使用 SharpZipLib 遇到的安卓打包 I18N 相关问题
  • 软件工程(十五) 行为型设计模式(一)
  • 【校招VIP】前端算法考点之快慢指针题型
  • Docker基础入门:容器数据卷与Dockerfile构建镜像(发布)
  • 部署问题集合(二十一)从零开始搭建一台NAS服务器(Linux虚拟机)
  • Git小白入门——了解分布式版本管理和安装
  • 芯科科技宣布推出下一代暨第三代无线开发平台,打造更智能、更高效的物联网
  • 无涯教程-Android - Intents/Filters
  • NFTScan 正式上线 Base NFTScan 浏览器和 NFT API 数据服务
  • 【Git】测试持续集成——Git+Gitee+PyCharm
  • 《HelloGitHub》第 89 期
  • 多维时序 | Matlab实现LSTM-Adaboost和LSTM多变量时间序列预测对比
  • c语言每日一练(12)
  • 用AI + Milvus Cloud搭建着装搭配推荐系统
  • 41、springboot 整合 FreeMarker 模版技术
  • 每天 26,315 美元罚款?交通安全局要求特斯拉提供 Autopilot数据
  • 3d激光slam建图与定位(2)_aloam代码阅读
  • Java 8 新特性——Lambda 表达式(2)
  • MES管理系统中常用的数据模型有哪些
  • ARM DIY(三)板载串口和 LCD 调试
  • 计算机网络-笔记-第一章-计算机网络概述
  • Oracle-day4:分组查询(带条件)、DDL建表、约束、主从表
  • (详解)数据结构-----------栈与队列 c语言实现
  • 前端文件、图片直传OOS、分片上传、el-upload上传(vue+elementUI)
  • java自动登录 selenium 自动登录并获取cookie
  • vue中 computed()方法详解
  • 在服务器上搭建Jenkins