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;
    
}
相关推荐
NAGNIP13 小时前
大模型框架性能优化策略:延迟、吞吐量与成本权衡
算法
美团技术团队14 小时前
LongCat-Flash:如何使用 SGLang 部署美团 Agentic 模型
人工智能·算法
Fanxt_Ja18 小时前
【LeetCode】算法详解#15 ---环形链表II
数据结构·算法·leetcode·链表
侃侃_天下18 小时前
最终的信号类
开发语言·c++·算法
茉莉玫瑰花茶19 小时前
算法 --- 字符串
算法
博笙困了19 小时前
AcWing学习——差分
c++·算法
NAGNIP19 小时前
认识 Unsloth 框架:大模型高效微调的利器
算法
NAGNIP19 小时前
大模型微调框架之LLaMA Factory
算法
echoarts19 小时前
Rayon Rust中的数据并行库入门教程
开发语言·其他·算法·rust
Python技术极客19 小时前
一款超好用的 Python 交互式可视化工具,强烈推荐~
算法