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

二叉树的中序遍历 - 力扣(LeetCode)C语言

94. 二叉树的中序遍历 - 力扣(LeetCode)(点击前面链接即可查看题目)

一、题目

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

示例 1:

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

示例 2:

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

示例 3:

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

提示:

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

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

二、解题思路以及代码 

注:

1.本题中returnSize,指的是二叉树的结点数

2.返回的数组必须是malloc开辟的

注意要点与前序遍历相同,请参考二叉树的前序遍历 - 力扣(LeetCode)C语言-CSDN博客

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
/*** Note: The returned array must be malloced, assume caller calls free().*/void inBTree(int* pa, struct TreeNode* root,int* pi)
{if(NULL == root){return;}inBTree(pa, root->left, pi);pa[*pi] = root->val;(*pi)++;inBTree(pa, root->right, pi);
}
int TreeSize1(struct TreeNode* root)
{return root == NULL? 0:TreeSize1(root->left) + TreeSize1(root->right) + 1;
}int* inorderTraversal(struct TreeNode* root, int* returnSize) 
{*returnSize= TreeSize1(root);int* a = (int*)malloc(*returnSize * sizeof(int));int i = 0;inBTree(a,root,&i);return a;
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【mongodb】mongodb副本集的搭建和使用
  • The operation was rejected by your operating system. code CERT_HAS_EXPIRED报错解决
  • WEB前端15-Router路由
  • 排序算法:快速排序,golang实现
  • 【C++】初识类和对象
  • java反序列化
  • C++——异常
  • C++11 lambda表达式与包装器
  • 【Unity】 HTFramework框架(五十五)【进阶篇】只使用资源路径、资源名称加载资源
  • 用script实现的一个简易计算机
  • DevExpress WPF中文教程:如何将GridControl的更改发布到数据库?
  • 删除排序链表中的重复元素 II(LeetCode)
  • 详解基于百炼平台及函数计算快速上线网页AI助手
  • [Python] ai音色翻译器
  • 安全基础学习-keil调试汇编代码
  • Apache Zeppelin在Apache Trafodion上的可视化
  • canvas 高仿 Apple Watch 表盘
  • JavaScript标准库系列——Math对象和Date对象(二)
  • js
  • js中forEach回调同异步问题
  • Linux中的硬链接与软链接
  • ReactNative开发常用的三方模块
  • redis学习笔记(三):列表、集合、有序集合
  • Sequelize 中文文档 v4 - Getting started - 入门
  • vue中实现单选
  • Webpack 4 学习01(基础配置)
  • webpack+react项目初体验——记录我的webpack环境配置
  • 创建一个Struts2项目maven 方式
  • 高性能JavaScript阅读简记(三)
  • 技术发展面试
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 算法-插入排序
  • 阿里云服务器如何修改远程端口?
  • #### golang中【堆】的使用及底层 ####
  • #APPINVENTOR学习记录
  • #define
  • #HarmonyOS:Web组件的使用
  • (附源码)springboot炼糖厂地磅全自动控制系统 毕业设计 341357
  • (附源码)springboot猪场管理系统 毕业设计 160901
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (七)理解angular中的module和injector,即依赖注入
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • .bashrc在哪里,alias妙用
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .Net环境下的缓存技术介绍
  • .NET开发不可不知、不可不用的辅助类(一)
  • .net连接oracle数据库
  • @CacheInvalidate(name = “xxx“, key = “#results.![a+b]“,multi = true)是什么意思
  • @德人合科技——天锐绿盾 | 图纸加密软件有哪些功能呢?
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • [000-01-011].第2节:持久层方案的对比
  • [2016.7 test.5] T1
  • [BZOJ4566][HAOI2016]找相同字符(SAM)