Leetcode题库 94.二叉树的中序遍历(递归 C实现)

文章目录

  • 解析
  • 代码

解析

中序遍历:先左再中后右
Func函数,接收一个节点,节点非空,则先遍历其左子树,再存入自身val值,最后遍历右子树
ret数组存储每个非空节点的val值
pos为下一个存入ret数组的数据的下标

代码

void Func(struct TreeNode* p,int* ret,int* pos){
     if(p==NULL) return;
     Func(p->left,ret,pos);
     ret[(*pos)++]=p->val;
     Func(p->right,ret,pos);
}

int* inorderTraversal(struct TreeNode* root, int* returnSize){
    int* ret=(int*)malloc(sizeof(int)*100);
    *returnSize=0;
    Func(root,ret,returnSize);
    return ret;
}

你可能感兴趣的:(Leetcode刷题集,leetcode,c语言,算法)