力扣每日一题94:二叉树的中序遍历

news2024/11/27 4:18:09

题目描述:

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

示例 1:

输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [1]
输出:[1]

提示:

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

通过次数

1.3M

提交次数

1.7M

通过率

76.3%

代码:

//非递归

class Solution{
public:
    vector<int> inorderTraversal(TreeNode* root){
        stack<TreeNode*> sta;
        vector<int> ans;
        while(root||!sta.empty())
        {
            while(root)
            {
                sta.push(root);
                root=root->left;
            }
            root=sta.top();
            ans.emplace_back(root->val);
            sta.pop();
            root=root->right;
        }
        return ans;
    }
};
//递归

/**
 * 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<int> ans;
    void f(TreeNode *root)
    {
        if(root!=NULL)
        {
            f(root->left);
            ans.emplace_back(root->val);
            f(root->right);
        }
    }
    vector<int> inorderTraversal(TreeNode* root) {
        f(root);
        return ans;
    }
};

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

速学数据结构 | 循环队列怎么写才最高效?只需要掌握这些技巧

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏:《Linux深造日志》《C干货基地》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 文章目录 &#x1f4cb; 前言一、什么是循环队列&#xff1f;二、如何实现循环队列&#xff1f;2.1 循环队列的结构2.2 循环…

leetcode:268. 丢失的数字(异或运算)

一、题目 函数原型&#xff1a; int missingNumber(int* nums, int numsSize) 二、思路&#xff1a; 0 - n缺失一个数字&#xff0c;那么将数组中所有的数字按位异或&#xff0c;再按位异或0 - n的所有数字&#xff0c;由于 x ^ x 0&#xff0c;0 ^ x x&#xff0c;因此最终运…

Win10/Win11总是自动更新,如何关闭自动更新?

参考:https://www.zhihu.com/search?q%E5%85%B3%E9%97%ADwindows%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0&search_sourceSuggestion&utm_contentsearch_suggestion&typecontent 手动关闭 1 Windows服务 1.1 WinR输入services.msc打开服务 1.2 找到Windows Update…

黑马程序员项目-黑马点评

黑马点评1 短信登录 基于Session实现登录流程 发送验证码&#xff1a; 用户在提交手机号后&#xff0c;会校验手机号是否合法&#xff0c;如果不合法&#xff0c;则要求用户重新输入手机号 如果手机号合法&#xff0c;后台此时生成对应的验证码&#xff0c;同时将验证码进行…

从MFC初始化过程看rc文件的行为,并剖析关联控件变量的实质

以MFC对话框程序为例: 当我们打开资源编辑器时就可以很容易的添加各种控件窗口,资源编辑器实际上操作的是rc文件;那么这些控件窗口是何时被MFC创建与管理的 没有关联控件变量前,在资源编辑器中依然可以容易拖动控件,并显示出来;这个控件窗口是如何被创建和管理的: 资源编…

【C语法学习】13 - fscanf()函数

文章目录 1 函数原型2 参数3 返回值4 比较5 示例5.1 示例15.2 示例2 1 函数原型 fscanf()&#xff1a;从指定流stream读取格式化输入&#xff0c;函数原型如下&#xff1a; int fscanf(FILE *stream, const char *format, ...)2 参数 fscanf()函数参数包括三部分&#xff1a…

Node.js 中解析 HTML 的方法介绍

在 Web 开发中&#xff0c;解析 HTML 是一个常见的任务&#xff0c;特别是当我们需要从网页中提取数据或操作 DOM 时。掌握 Node.js 中解析 HTML 的各种方式&#xff0c;可以大大提高我们提取和处理网页数据的效率。本文将介绍如何在 Node.js 中解析 HTML。 基本概念 HTML 解析…

【广州华锐互动】VR野外求生技能学习,让你感受真实的冒险之旅!

随着科技的迅速发展&#xff0c;虚拟现实(VR)技术为人们提供了一个全新的、身临其境的探险体验。通过将用户带入一个仿真的、沉浸式的虚拟环境&#xff0c;VR互动体验让人们在安全的氛围中感受到野外探险的乐趣。本文将从视觉呈现、沉浸式体验、交互性和应用范围四个方面&#…

MATLAB颜色索引表---持续更新中--各个平台都可使用

MATLAB颜色索引表—持续更新中–各个平台都可使用

探索ChatGPT在学术写作中的应用与心得

随着人工智能的迅猛发展&#xff0c;ChatGPT作为一种强大的自然语言处理模型&#xff0c;逐渐在学术界引起了广泛的关注。本文将探讨ChatGPT在学术写作中的应用&#xff0c;并分享使用ChatGPT进行学术写作时的一些经验和心得。 01 — ChatGPT在学术写作中的应用 1.文献综述和…

【ChatOCR】OCR+LLM定制化关键信息抽取(附开源大语言模型汇总整理)

目录 背景技术方案存在的问题及解决思路关键信息提取结果其他解决方案替换文心一言LangChain大型多模态模型&#xff08;Large Multimodal Model, LMM&#xff09; 开源大模型汇总LLaMA —— Meta 大语言模型Stanford Alpaca —— 指令调优的 LLaMA 模型Lit-LLaMA —— 基于 na…

基于单片机的语音存储与回放系统设计

博主主页&#xff1a;单片机辅导设计 博主简介&#xff1a;专注单片机技术领域和毕业设计项目。 主要内容&#xff1a;毕业设计、简历模板、学习资料、技术咨询。 文章目录 主要介绍一、控制系统设计1.1 系统方案设计1.2 系统工作原理 二、硬件电路设计总电路设计图 三、 软件设…

shufflenet v2 yolo

设计理念 1x1卷积进行平衡输入和输出的通道大小&#xff1b;组卷积要谨慎使用&#xff0c;注意分组数&#xff1b;避免网络的碎片化&#xff1b;减少元素级运算。 ShuffleNet v2中弃用了1x1的group convolution操作&#xff0c;而直接使用了input/output channels数目相同的…

win10系统nodejs的安装npm教程

1.在官网下载nodejs&#xff0c;https://nodejs.org/en 2&#xff0c;双击nodejs的安装包 3&#xff0c;点击 next 4&#xff0c;勾选I accpet the terms in…… 5&#xff0c;第4步点击next进入配置安装路径界面 6,点击next&#xff0c;选中Add to PATH &#xff0c;旁边…

高压检测设备

比如&#xff1a;高压数字表、高压差分探头、指针式高压表、电流探枪、高压探棒 这些设备都是用来测量高压的&#xff0c;有的测电压&#xff0c;有的测电流。 高压数字表&#xff1a; 单独使用&#xff0c;功能很简单&#xff0c;有2个正负极探爪&#xff0c;把2个探爪连接到…

Linux 安装 RocketMq

RocketMq是阿里出品&#xff08;基于MetaQ&#xff09;的开源中间件&#xff0c;已捐赠给Apache基金会并成为Apache的顶级项目。基于java语言实现&#xff0c;十万级数据吞吐量&#xff0c;ms级处理速度&#xff0c;分布式架构&#xff0c;功能强大&#xff0c;扩展性强。 官网…

大厂面试题-IO和NIO区别

从下面几个方面来回答&#xff1a; 首先&#xff0c;I/O&#xff0c;指的是IO流&#xff0c;它可以实现数据从磁盘中的读取以及写入。 实际上&#xff0c;除了磁盘以外&#xff0c;内存、网络都可以作为I/O流的数据来源和目的地。 在Java里面&#xff0c;提供了字符流和字节…

http协议 - 常见渗透测试姿势

文章目录 HTTP是什么GET 请求POST请求HEAD请求 HTTP绕过练习靶场修改添加请求头部字段内容绕过referer User-Agent x-forwarded-for进入题目内容&#xff08;1&#xff09; 修改添加cookie字段内容绕过cookie进入题目内容&#xff08;2&#xff09; 工具&#xff1a; Burp Sui…

NodeJS 安装及环境配置

下载地址&#xff1a;https://nodejs.org/zh-cn/download/ 安装 NodeJS 根据自己电脑系统及位数选择&#xff0c;一般都选择 windows 64位 .msi 格式安装包。 所用命令&#xff1a; node -v npm -v PS&#xff1a;如果以上两条命令都能执行成功&#xff0c;表示安装完成&#…

Compose-Multiplatform在Android和iOS上的实践

本文字数&#xff1a;4680字 预计阅读时间&#xff1a;30分钟 01 简介 之前我们探讨过KMM&#xff0c;即Kotlin Multiplatform Mobile&#xff0c;是Kotlin发布的移动端跨平台框架。当时的结论是KMM提倡将共有的逻辑部分抽出&#xff0c;由KMM封装成Android(Kotlin/JVM)的aar和…