牛客热题:二叉树的中序遍历

📟作者主页:慢热的陕西人

🌴专栏链接:力扣刷题日记

📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言

在这里插入图片描述

文章目录

  • 牛客热题:二叉树的中序遍历
    • 题目链接
    • 方法一:递归
      • 思路
      • 代码
      • 复杂度
    • 方法二:非递归
      • 思路
      • 代码
      • 复杂度

牛客热题:二叉树的中序遍历

题目链接

二叉树的中序遍历_牛客题霸_牛客网 (nowcoder.com)

方法一:递归

思路

  • 深度优先遍历,优先遍历左子树
  • 然后将根节点插入到对应的答案数组
  • 最后遍历右子树

代码

   vector<int> res;void _inorder(TreeNode* root) {if (root == nullptr) return ;if (root->left != nullptr) _inorder(root->left);res.push_back(root->val);if (root->right != nullptr) _inorder(root->right);return ;}vector<int> inorderTraversal(TreeNode* root) {_inorder(root);return res;    }

复杂度

时间复杂度:O(N) ,遍历了一遍二叉树

空间复杂度:O(N) , 使用了一个和二叉树节点数相同的数组

方法二:非递归

思路

  • 从根节点开始,先将当前节点的左子节点依次入栈,直到没有左子节点为止。
  • 然后从栈中取出一个节点,将其值加入结果列表,并将当前节点指向该节点的右子节点,然后继续上述过程。
  • 直到当前节点为空且栈为空时结束循环

代码

vector<int> inorderTraversal(TreeNode* root) {vector<int> res;if(root == nullptr) return res;stack<TreeNode*> st;TreeNode* cur = root;while(cur != nullptr || !st.empty()){while(cur != nullptr){st.push(cur);cur = cur->left;}cur = st.top();st.pop();res.push_back(cur->val);cur = cur->right;}return res;}

复杂度

时间复杂度:O(N) ,遍历了一遍对应的二叉树

空间复杂度:O(N), 答案数组和对应栈空间

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

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

相关文章

python对排列三的分析

对排列三(一种常见的彩票游戏)进行分析,我们通常关注其号码组合的可能性、中奖概率以及可能的号码趋势或模式。然而,由于排列三是基于随机抽取的,因此没有一种方法可以预测下一个中奖号码,但我们可以通过Python来分析历史数据和统计信息。 以下是一个简单的Python脚本示…

js发票查验、票据OCR接口助力解决发票录入与真假辨别难题

作为消费者&#xff0c;每位都是税法的监督员&#xff0c;为了保护自己的合法权益、共同维护市场秩序&#xff0c;消费者进行实际交易后无论是否需要报销&#xff0c;都应该主动向商家索取发票。一般来说发票主要有三种&#xff1a;增值税专用发票、普通发票、专业发票。以下&a…

openGauss安装完成后,切换用户提示ulimit open files cannot modify limit

openGauss安装完成后&#xff0c;切换用户提示ulimit open files cannot modify limit su - omm Last login: Wed Apr 17 14:13:01 CST 2024 on pts/0 -bash: ulimit: open files: cannot modify limit: Operation not permitted通过研究发现&#xff0c;是在安装openGauss的时…

【算法基础实验】排序-最小优先队列MinPQ

优先队列 理论知识 MinPQ&#xff08;最小优先队列&#xff09;是一种常见的数据结构&#xff0c;用于有效管理一组元素&#xff0c;其中最小元素可以快速被检索和删除。这种数据结构广泛应用于各种算法中&#xff0c;包括图算法&#xff08;如 Dijkstra 的最短路径算法和 Pr…

python中的矩阵操作

1 矩阵的每行加上同一行 print(np.array([[0,0,1],[1,1,1],[2,2,1]])[1,1,1])2 两个矩阵AB(相同列数不同行)拼接&#xff0c;B按行拼接在A后面 np.row_stack((A,B)))3 一个矩阵的每个元素都加上同一个常数 print(np.array([[0,0,1],[1,1,1],[2,2,1]])1)矩阵中每个数都会加1 …

高斯数据库创建存储过程

CREATE PROCEDURE 语法格式 CREATE [ OR REPLACE ] PROCEDURE procedure_name [ ( {[ argmode ] [ argname ] argtype [ { DEFAULT | : | } expression ]}[,…]) ] [ { IMMUTABLE | STABLE | VOLATILE } | { SHIPPABLE | NOT SHIPPABLE } | {PACKAGE} | [ NOT ] LEAKPROOF | {…

mysql的JDBC

MYSQL的JDBC 流程&#xff1a; 注册和加载驱动(可以省略)&#xff08;导入mysql的jdbc的驱动库&#xff09;&#xff08;Class.forName(“com.mysql.jdbc.Driver”);&#xff09; 获取连接 Connection 获取 Statement 对象 使用 Statement 对象执行 SQL 语句 返回结果集 …

GPT-4o 免费开放!体验 AI 对话的无限可能!手把手教你普通用户如何切换到4o版本使用!

大家好&#xff0c;我是影子。今天一觉醒来&#xff0c;发现朋友圈传开了GPT-4o可以免费使用了。 相信大家都使用过GPT-3.5的版本&#xff0c;但是无论是智能程度还是联网查询等一些需求都无法给我们实现&#xff0c;这不&#xff0c;4o的出现直接解决了这些问题。 下面影子将…

ROS2 - 创建项目 (Ubuntu22.04)

本文简述&#xff1a;在 Ubuntu22.04 系统中使用 VS CODE 来搭建一个ROS2开发项目。 1. 创建工作空间 本文使用 Ubuntu 22.04&#xff0c; 已安装配置完成 VS Code&#xff0c;C 环境&#xff08;g/gdb&#xff09; 1.1 创建目录 选择文件夹作为工作空间&#xff0c;并在这…

空号检测接口如何对接?

手机运营商空号检测接口又叫空号过滤查询接口、手机号状态检测查询接口&#xff0c;指的是输入手机号&#xff0c;查询其在网活跃度&#xff0c;返回包括空号、实号、停机、库无、沉默号、风险号等状态。那么运营商空号检测接口如何对接呢&#xff1f; 首先我们找到一家有手机…

vb6 ado连接数据库 oledb Microsoft OLE DB Provider for SQL Server 连接字符串

SQL Server 2000 标准安全 Providersqloledb;Data SourcemyServerAddress;Initial CatalogmyDataBase;User IdmyUsername;PasswordmyPassword; SQL Server 2000SQL服务器7.0 可信连接 Providersqloledb;Data SourcemyServerAddress;Initial CatalogmyDataBase;Integrated Secur…

排序-冒泡排序(bubble sort)

冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单的排序算法&#xff0c;它重复地遍历待排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成…

Weblogic 任意文件上传漏洞(CVE-2018-2894)

1 漏洞描述 CVE-2018-2894漏洞存在于Oracle WebLogic Server的Web服务测试页面&#xff08;Web Service Test Page&#xff09;中。这个页面允许用户测试Web服务的功能&#xff0c;但在某些版本中&#xff0c;它包含了一个未经授权的文件上传功能。攻击者可以利用这个漏洞&…

数据特征降维 | 主成分分析(PCA)附Python代码

主成分分析(Principal Component Analysis,PCA)是一种常用的数据降维技术和探索性数据分析方法,用于从高维数据中提取出最重要的特征并进行可视化。 PCA的基本思想是通过线性变换将原始数据投影到新的坐标系上,使得投影后的数据具有最大的方差。这些新的坐标轴称为主成分…

苹果cms:搜索功能的开关与设置

今天有个小伙伴问了个关于苹果cms搜索的问题&#xff1a;直接搜演员搜索不到影片信息&#xff08;如下图&#xff09; 1、我们拿演员王宝强为例&#xff1a;搜索王宝强后结果显示无相关视频 2、但是我们搜索王宝强主演的“大闹天竺”后却能得到关于王宝强的影片信息。这是为什…

springboot以tomcat方式启动后报错

使用idea启动tomcat时&#xff0c;报错。将程序打包到linux后&#xff0c;仍报相同错误。 错误如下&#xff1a; 一个或多个筛选器启动失败。完整的详细信息将在相应的容器日志文件中找到 严重[localhost] org.apache.catalina.core.StandardContext.startInternal 由于之前的…

代理模式的理解

文章目录 前言一、代理模式的定义和优、缺点定义优点缺点 二、代码演示案例1.静态代理2.JDK动态代理3.CGLIB动态代理 总结 前言 代理模式常见的使用场景包括&#xff1a; 需要对对象的访问进行控制或限制的情况。 需要在访问对象时执行额外的操作&#xff0c;例如记录日志、收…

内啡肽的产生

内啡肽的产生 短视频、直播和游戏等娱乐活动可以刺激多巴胺分泌&#xff0c;让人感到兴奋和愉悦。这些短暂的快乐却会让我们逐渐上瘾&#xff0c;难以自拔。不知不觉中&#xff0c;我们忽略了时间的流逝&#xff0c;满足于现状&#xff0c;失去了追求更高目标的动力。 越是富…

跨ROS系统通信:使用TCP实现节点间的直连

当涉及到在机器人操作系统&#xff08;ROS&#xff09;环境中的通信时&#xff0c;标准做法通常是在同一个ROS网络内通过话题和服务进行。但在某些特定情况下&#xff0c;比如当你有两个分布在不同网络中的ROS系统时&#xff0c;标准的通信方法可能不太适用。此时&#xff0c;一…

【WEB前端2024】开源智体世界:乔布斯3D纪念馆-第21课-购买烟花插件

【WEB前端2024】开源智体世界&#xff1a;乔布斯3D纪念馆-第21课-购买烟花插件 使用dtns.network德塔世界&#xff08;开源的智体世界引擎&#xff09;&#xff0c;策划和设计《乔布斯超大型的开源3D纪念馆》的系列教程。dtns.network是一款主要由JavaScript编写的智体世界引擎…