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

【LeetCode】剑指 Offer(15)

目录

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

题目的接口:

解题思路:

代码:

过啦!!!

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

题目的接口:

解题思路:

代码:

过啦!!!

写在最后:


题目:剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣(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<vector<int>> levelOrder(TreeNode* root) {}
};

解题思路:

我们可以利用队列先进先出的特性,

用队列来存放二叉树节点,

然后每次遍历二叉树的一层节点,

每层遍历的时候用数组存起来,然后放进二维数组,

每层都用新的数组村节点值即可。

代码:

/*** 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) {//建一个队列queue<TreeNode*> q;TreeNode* cur = root;int qsize = 0;//先把根节点入队if(root){q.push(root);qsize++;}vector<vector<int>> vv;//循环到不再有节点入队while(!q.empty()){//每次初始化新数组vector<int> v;//循环该层的节点数while(qsize--){//节点出队,节点值打印TreeNode* front = q.front();q.pop();v.push_back(front->val);//左右孩子入队if(front->left){q.push(front->left);}if(front->right){q.push(front->right);}}//该层的节点数qsize = q.size();vv.push_back(v);}return vv;}
};

过啦!!!

题目:剑指 Offer 32 - III. 从上到下打印二叉树 III - 力扣(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<vector<int>> levelOrder(TreeNode* root) {}
};

解题思路:

这道题其实是上一道题的一个变式练习,

整体框架和思路是一样的,

我们只需要根据题意,将双数层的数组反转再打印即可。

代码:

/*** 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) {//建一个队列queue<TreeNode*> q;TreeNode* cur = root;int qsize = 0;int cnt = 0;//先把根节点入队if(root){q.push(root);qsize++;}vector<vector<int>> vv;//循环到不再有节点入队while(!q.empty()){//每次初始化新数组vector<int> v;//记录层数cnt++;//循环该层的节点数while(qsize--){//节点出队,节点值打印TreeNode* front = q.front();q.pop();v.push_back(front->val);//左右孩子入队if(front->left){q.push(front->left);}if(front->right){q.push(front->right);}}//该层的节点数qsize = q.size();//层数为双数的时候反转一下数组就行if(cnt % 2 == 0){reverse(v.begin(), v.end());}vv.push_back(v);}return vv;}
};

过啦!!!

写在最后:

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

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

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

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

相关文章:

【LeetCode】剑指 Offer(15)

目录 题目&#xff1a;剑指 Offer 32 - II. 从上到下打印二叉树 II - 力扣&#xff08;Leetcode&#xff09; 题目的接口&#xff1a; 解题思路&#xff1a; 代码&#xff1a; 过啦&#xff01;&#xff01;&#xff01; 题目&#xff1a;剑指 Offer 32 - III. 从上到下打…...

【刷题笔记】之二分查找(搜索插入位置。在排序数组中查找元素的第一个和最后一个位置、x的平方根、有效的完全平方数)

1. 二分查找题目链接 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09;给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -…...

一起Talk Android吧(第五百一十五回:绘制向外扩散的水波纹)

文章目录整体思路实现方法示例代码各位看官们大家好&#xff0c;上一回中咱们说的例子是"Java中的进制转换",这一回中咱们说的例子是"绘制向外扩散的水波纹"。闲话休提&#xff0c;言归正转&#xff0c; 让我们一起Talk Android吧&#xff01; 整体思路 …...

基于粒子群改进的支持向量机SVM的情感分类识别,pso-svm情感分类识别

目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 SVM应用实例,基于SVM的情感分类预测 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型…...

【python中的列表和元组】

文章目录前言一、列表及其使用1.列表的特点2. 列表的使用方法二、元组及其特点1.元组的类型是tuple1.元组的查找操作2. 计算元组某个元素出现的次数3.统计元组内元素的个数总结前言 本文着重介绍python中的列表和元组以及列表和元组之间的区别 一、列表及其使用 1.列表的特点…...

世界顶级五大女程序媛,不仅技术强还都是美女

文章目录1.计算机程序创始人&#xff1a;勒芙蕾丝伯爵夫人2.首位获得图灵奖的女性&#xff1a;法兰艾伦3.谷歌经典首页守护神&#xff1a;玛丽莎梅耶尔4.COBOL之母&#xff1a;葛丽丝穆雷霍普5.史上最强游戏程序媛-余国荔说起程序员的话&#xff0c;人们想到的都会是哪些理工科…...

Linux- 系统随你玩之--文件管理-双生姐妹花

文章目录1、前言2、文件管理-双生姐妹花2.1、 df2.1.1、 df 语法2.1.1 、常用参数2.2、 du2.2.1、du 语法2.1.1、 常用参数2.3、双生姐妹花区别2.3.1、 查看文件统计 的计算方式不同2.3.2 、删除文件情况下统计结果 不同2.3.3 、针对双生姐妹花区别 结语3、双生姐妹花实操3.1 、…...

18、多维图形绘制

目录 一、三维图形绘制 &#xff08;一&#xff09;曲线图绘制plot3() &#xff08;二&#xff09;网格图绘制 mesh() &#xff08;三&#xff09;曲面图绘制 surf() &#xff08;四&#xff09;光照模型 surfl() &#xff08;五&#xff09;等值线图(等高线图)绘制 cont…...

【C++】30h速成C++从入门到精通(STL介绍、string类)

STL简介什么是STLSTL(standard template libaray-标准模板库)&#xff1a;是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。STL的版本原始版本Alexander Stepanov、Meng Lee 在惠普实验室完成的原始版本&…...

PMP是什么意思?适合哪些人学呢?

PMP简而言之&#xff0c;就是提高项目管理理论基础和实践能力的考试。 官方一点的说明呢&#xff0c;就是&#xff1a;PMP证书全称为Project Management Professional&#xff0c;也叫项目管理专业人士资格认证。 PMP证书由美国项目管理协会(PMI)发起&#xff0c;是严格评估项…...

【SpringBoot 事务不回滚?怎么解决?】

SpringBoot 事务不回滚可能有多种原因&#xff0c;下面列举一些常见的原因和对应的解决方法&#xff1a; 异常被捕获处理了 如果方法中抛出了异常&#xff0c;但是在方法中被捕获并处理了&#xff0c;那么事务不会回滚。解决方法是让异常继续抛出&#xff0c;或者使用 Transa…...

软件研发管理经验总结 - 技术管理

软件研发管理经验总结 - 技术管理 技术管理主要负责有技术团队建设、管理团队成员技术相关事务、帮助团队成员成长、负责团队成员交付的代码质量、以及负责产品技术方向、以及产品相关前沿技术调研&#xff1b;管理团队成员技术相关事务有代码Review、故障率跟踪、分析及根据分…...

项目实战典型案例19——临时解决方案和最终解决方案

临时解决方案和最终解决方案一&#xff1a;背景介绍二&#xff1a;思路&方案四&#xff1a;总结五&#xff1a;升华一&#xff1a;背景介绍 本篇博客是对项目开发中出现的临时解决方案和最终解决方案进行的总结和改进。目的是将经历转变为自己的经验。通过博客的方式分享给…...

机器学习模型的可解释性算法汇总!

模型可解释性汇总简 介目前很多机器学习模型可以做出非常好的预测&#xff0c;但是它们并不能很好地解释他们是如何进行预测的&#xff0c;很多数据科学家都很难知晓为什么该算法会得到这样的预测结果。这是非常致命的&#xff0c;因为如果我们无法知道某个算法是如何进行预测&…...

什么是着色器/Threejs如何使用着色器/Threejs使用着色器实现平面网格的动态效果案例

1&#xff0c;什么是着色器着色器&#xff08;Shader&#xff09;是计算机图形学中的一个重要概念&#xff0c;它是在 GPU 上运行的程序&#xff0c;用于计算三维场景中每个像素的颜色和其他属性。着色器通常分为两种类型&#xff1a;顶点着色器和片元着色器。顶点着色器主要用…...

191、【动态规划】AcWing ——AcWing 900. 整数划分:完全背包解法+加减1解法(C++版本)

题目描述 参考文章&#xff1a;900. 整数划分 解题思路 因为本题中规定了数字从大到小&#xff0c;其实也就是不论是1 2 1 4&#xff0c;还是2 1 1 4&#xff0c;都会被看作是2 1 1 4这一种情况&#xff0c;因此本题是在遍历中不考虑结果顺序。 背包问题中只需考虑…...

Java 比较器

public interface Comparable Comparable 接口位于 java.lang 包下&#xff0c;对实现它的每个类的对象强加一个总排序&#xff0c;这种排序被称为类的自然顺序&#xff0c;compareTo 方法被称为其自然比较方法。 实现此接口的对象的列表&#xff08;和数组&#xff09;可以由…...

配置本地 python GEE、geemap环境

1.安装anconda 百度搜索anconda清华镜像&#xff0c;从清华镜像中选择最新的anconda安装包&#xff0c;国内镜像网站下载速度较快&#xff0c;如果从国外官网下载速度相当慢&#xff0c;详细安装教程请参考&#xff1a; anconda安装教程https://blog.csdn.net/lwbCUMT/article…...

cmd命令教程

小提示&#xff1a; 在本文中&#xff0c;我将向您展示可以在 Windows 命令行上使用的 40 个命令 温馨提示&#xff1a;在本教程中学习使用适用于 Windows 10 和 CMD 网络命令的最常见基本 CMD 命令及其语法和示例 文章目录为什么命令提示符有用一、cmd是什么&#xff1f;如何在…...

深圳大学计软《面向对象的程序设计》实验15 函数模板和类模板

A. 有界数组模板类&#xff08;类模板&#xff09; 题目描述 编写有界数组模板BoundArray&#xff08;即检查对数组元素下标引用并在下标越界时终止程序的执行&#xff09;&#xff0c;能够存储各种类型的数据。要求实现对数组进行排序的方法sort&#xff0c;及对数组进行查找…...

零基础入门CGCNN:3步用AI预测材料属性的神奇工具

零基础入门CGCNN&#xff1a;3步用AI预测材料属性的神奇工具 【免费下载链接】cgcnn Crystal graph convolutional neural networks for predicting material properties. 项目地址: https://gitcode.com/gh_mirrors/cg/cgcnn 想用人工智能预测新材料性能却不知从何入手…...

测序技术演进:从Sanger到纳米孔的突破与应用

1. 测序技术的前世今生&#xff1a;从实验室到生命密码解读 想象一下你手里拿着一本由30亿个字母组成的书&#xff0c;每个字母只有0.34纳米大小&#xff0c;而你的任务是准确无误地抄写整本书——这就是基因组测序工作的真实写照。我第一次接触测序技术是在2008年&#xff0c;…...

会呼吸的防水:如何告别“闷热背包”的尴尬?

传统防水背包常被诟病为“塑料雨衣”——外部雨水进不来&#xff0c;内部汗气出不去。现代防水技术的真正突破&#xff0c;在于实现了“防水”与“透气”的完美平衡。这背后&#xff0c;是一场关于微孔薄膜的智慧博弈。 透气性原理&#xff1a;分子尺度的精妙设计优质防水膜的关…...

Fish-Speech-1.5零样本语音克隆:10秒音频实现高质量语音合成

Fish-Speech-1.5零样本语音克隆&#xff1a;10秒音频实现高质量语音合成 1. 引言 你有没有想过&#xff0c;只需要10秒钟的录音&#xff0c;就能让AI学会你的声音&#xff0c;然后用你的声音说出任何你想说的话&#xff1f;这听起来像是科幻电影里的情节&#xff0c;但现在真…...

2026山东大学软件学院项目实训(一)

Vue 3工程化实践与组件设计 核心任务概述 本次项目实训聚焦Vue 3前端工程化配置与全局组件开发&#xff0c;目标是通过模块化设计提升代码复用率&#xff0c;并建立规范的前后端协作流程。核心任务包括&#xff1a; 使用Pinia实现全局状态管理基于Ant Design Vue完成响应式布…...

Obsidian-skills恢复环境:3步从备份快速恢复技能配置和数据

Obsidian-skills恢复环境&#xff1a;3步从备份快速恢复技能配置和数据 【免费下载链接】obsidian-skills Agent skills for Obsidian. Teach your agent to use Markdown, Bases, JSON Canvas, and use the CLI. 项目地址: https://gitcode.com/GitHub_Trending/ob/obsidian…...

vllm 安装

别在Windows里安装vllm了&#xff0c;总有很多问题&#xff0c; 可以在WSL2的Unbuntu 24.04里安装vllm&#xff0c;轻松完成 一、相关链接 vllm https://docs.vllm.ai/en/latest/index.html github https://github.com/vllm-project/vllm vLLM 中文站 https://vllm.hyper.…...

OpenClaw本地部署指南:千问3.5-9B接口配置与调试技巧

OpenClaw本地部署指南&#xff1a;千问3.5-9B接口配置与调试技巧 1. 为什么选择OpenClaw千问3.5-9B组合 去年我在尝试自动化处理日常工作报告时&#xff0c;发现市面上的RPA工具要么功能臃肿&#xff0c;要么需要将数据上传到云端处理。直到遇到OpenClaw这个开源框架&#xf…...

正交编码器信号处理避坑指南:ESP32 PCNT模块的6个关键配置参数详解

正交编码器信号处理避坑指南&#xff1a;ESP32 PCNT模块的6个关键配置参数详解 在工业自动化和机器人控制系统中&#xff0c;正交编码器作为核心的位置反馈元件&#xff0c;其信号处理的可靠性直接决定了整个系统的精度。ESP32内置的PCNT&#xff08;Pulse Counter&#xff09;…...

Qwen3.5-4B模型在VS Code中的集成:打造个人AI编程工作站

Qwen3.5-4B模型在VS Code中的集成&#xff1a;打造个人AI编程工作站 1. 前言&#xff1a;为什么要在VS Code中集成Qwen3.5-4B 作为一名开发者&#xff0c;你可能已经习惯了在各种在线平台上使用AI辅助编程。但有没有想过&#xff0c;把这些能力直接搬到你的本地开发环境中&am…...