力扣94. 二叉树的中序遍历

简介: 力扣94. 二叉树的中序遍历

1.解题思路

与前序遍历相同,相同的思路,将树的值存到数组中,所以在申请空间的时候,我们需要知道要申请多少空间,也就是要知道树到底有多少个结点,因此第一步要写个函数实现获得树的节点数,又因为该题提供的接口里写了申请空间,因为本题自带的接口不适合递归,所以我们可以将递归操作再另外写个函数来实现只不过在遍历的时候要遵循中序

2.代码实现

 int GetNum(struct TreeNode* root)
{
    if(root==NULL)
    return 0;
    return GetNum(root->left)+ GetNum(root->right)+1;
}
void Traversal(struct TreeNode* root,int *a, int* pi)
{   if(root==NULL)
return ;
   Traversal(root->left,a, pi);
      a[(*pi)]=root->val;
    (*pi)++;
   Traversal(root->right,a, pi);
}
int* inorderTraversal(struct TreeNode* root, int* returnSize) 
{
     int size=GetNum(root);
   int *a=(int*)malloc(sizeof(int)*size);
       int pi=0;
    Traversal(root,a,&pi);
    * returnSize=size;
    return a;
}

结尾:今天的分享到此结束,喜欢的朋友如果感觉有帮助可以点赞三连支持,咱们共同进步!

目录
相关文章
|
1月前
【LeetCode 31】104.二叉树的最大深度
【LeetCode 31】104.二叉树的最大深度
19 2
|
1月前
【LeetCode 29】226.反转二叉树
【LeetCode 29】226.反转二叉树
15 2
|
1月前
【LeetCode 28】102.二叉树的层序遍历
【LeetCode 28】102.二叉树的层序遍历
15 2
|
1月前
【LeetCode 43】236.二叉树的最近公共祖先
【LeetCode 43】236.二叉树的最近公共祖先
18 0
|
1月前
【LeetCode 38】617.合并二叉树
【LeetCode 38】617.合并二叉树
14 0
|
1月前
【LeetCode 37】106.从中序与后序遍历构造二叉树
【LeetCode 37】106.从中序与后序遍历构造二叉树
16 0
|
1月前
【LeetCode 34】257.二叉树的所有路径
【LeetCode 34】257.二叉树的所有路径
12 0
|
1月前
【LeetCode 32】111.二叉树的最小深度
【LeetCode 32】111.二叉树的最小深度
16 0
|
3月前
|
存储 算法
二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
文章深入探讨了二叉树的层序遍历方法,并展示了如何通过队列实现层序遍历的算法逻辑,同时指出掌握层序遍历技巧可以帮助解决LeetCode上的多道相关题目。
二叉树进阶-学会层序遍历助你一次刷完leetcode10道题
|
3月前
|
算法 Java
LeetCode第94题二叉树的中序遍历
文章介绍了LeetCode第94题"二叉树的中序遍历"的解法,使用递归实现了中序遍历的过程,遵循了"左根右"的遍历顺序,并提供了清晰的Java代码实现。
LeetCode第94题二叉树的中序遍历