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

二叉树的中序遍历 LeetCode热题100

题目

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

思路

递归,按左中右的顺序添加节点。

利用栈先进后出的特性模拟递归。

代码

/**递归写法* 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 InorderTraversal(TreeNode* node){if(node==nullptr){return ;}InorderTraversal(node->left);ans.push_back(node->val);InorderTraversal(node->right);}vector<int> inorderTraversal(TreeNode* root) {ans.clear();InorderTraversal(root);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> inorderTraversal(TreeNode* root) {vector<int>ans;ans.clear();    stack<TreeNode*>st;while(!st.empty()){st.pop();}while(root!=nullptr||!st.empty()){while(root){st.push(root);root=root->left;}root=st.top();ans.push_back(root->val);st.pop();root = root->right;}return ans;}
};
http://www.lryc.cn/news/105867.html

相关文章:

  • IOS + Appium自动化教程
  • 100个精选Python实战项目案例,在线无偿分享
  • JSON语法
  • PostMan+Jmeter+QTP工具介绍及安装
  • 2023电赛E题视觉部分
  • 算法工程师岗位面试必备,讲透深度学习面试题,详解人工智能生成式任务与AI大模型面试题
  • JVM基础篇-虚拟机栈
  • KepwareEX配置API REST接口
  • 【python】python求解矩阵的转置(详细讲解)
  • Mr. Cappuccino的第56杯咖啡——Mybatis拦截器
  • 容器化安装环境EFK搭建
  • 基于 Debian GNU/Linux 12 “书虫 “的Neptune 8.0 “Juna “来了
  • GDAL C++ API 学习之路 (4) Spatial Reference System篇 OGRSpatialReference类
  • RS232转Profinet网关rs232转网口需要如何设置
  • LaTex的下载与安装超详细windows版
  • MySQL | 存储过程快速入门
  • C# 图表控件库 ScottPlot
  • 013 怎么查看自己电脑的wifi密码
  • 深入了解 LoRaWAN® MAC 命令
  • 跨境电商与隐擎fox指纹浏览器:保障安全与效率的完美结合
  • 【网络编程】五种网络IO模式
  • 面试总结-2023版
  • bigemap在草原行业的应用案例
  • DevOps系列文章之 java调用python脚本
  • PHP异步框架总结
  • vsto excel 可以异步写入值么
  • Android Gradle 骚操作,将两个项目合并到一个项目中
  • 虹科案例|如何分析设备故障时间和次数,打破生产瓶颈?
  • SVN代码迁移到Git方法
  • Linux更换阿里云yum源