LeetCode:二叉树的中序遍历(C语言)

1、前序遍历:根左右

2、中序遍历:左根右

3、后序遍历:左右根

1、问题概述:二叉树中序遍历

2、示例

示例 1:

复制代码
输入:root = [1,null,2,3]
输出:[1,3,2]

示例 2:

复制代码
输入:root = []
输出:[]

示例 3:

复制代码
输入:root = [1]
输出:[1]

3、分析

(1)返回的是数组形式:先用malloc申请一片连续存储空间

(2)初始化存储空间,将*returnSize=0

(3)进行递归

(4)返回数组

4、代码

cpp 复制代码
void leftbl(struct TreeNode* root,int* returnSize,int *result){
    if(root!=NULL){
        // 中序遍历
        leftbl(root->left,returnSize,result);     // 左
        result[(*returnSize)++]=root->val;        // 根
        leftbl(root->right,returnSize,result);    // 右
        
        // 前序遍历
        /**
        result[(*returnSize)++]=root->val;        // 根
        leftbl(root->left,returnSize,result);     // 左
        leftbl(root->right,returnSize,result);    // 右
        */
        
        // 后序遍历
        /**
        leftbl(root->left,returnSize,result);     // 左
        leftbl(root->right,returnSize,result);    // 右
        result[(*returnSize)++]=root->val;        // 根
        */
    }
}


int* inorderTraversal(struct TreeNode* root, int* returnSize) {
    // 先申请一片内存空间
    int *result=malloc(sizeof(int)*1000);

    // 初始化(将内存存储空间设置为0)
    *returnSize=0;

    leftbl(root,returnSize,result);

    return result;
    
}
相关推荐
小江的记录本2 小时前
【分布式】分布式核心组件——分布式ID生成:雪花算法、号段模式、美团Leaf、百度UidGenerator、时钟回拨解决方案
分布式·后端·算法·缓存·性能优化·架构·系统架构
CPUOS20108 小时前
嵌入式C语言高级编程之MVC设计模式
c语言·设计模式·mvc
jolimark8 小时前
C语言存在的问题及Zig语言如何改进,差异对比全在这
c语言·内存管理·系统编程·类型系统·zig语言
leobertlan8 小时前
好玩系列:用20元实现快乐保存器
android·人工智能·算法
青梅橘子皮9 小时前
C语言---指针的应用以及一些面试题
c语言·开发语言·算法
_深海凉_10 小时前
LeetCode热题100-有效的括号
linux·算法·leetcode
零号全栈寒江独钓12 小时前
基于c/c++实现linux/windows跨平台获取ntp网络时间戳
linux·c语言·c++·windows
被开发耽误的大厨12 小时前
1、==、equals、hashCode底层原理?重写场景?
算法·哈希算法
WolfGang00732113 小时前
代码随想录算法训练营 Day38 | 动态规划 part11
算法·动态规划
松☆14 小时前
C++ 算法竞赛题解:P13569 [CCPC 2024 重庆站] osu!mania —— 浮点数精度陷阱与 `eps` 的深度解析
开发语言·c++·算法