【leetcode|leetcode 94.二叉树的中序遍历】给定一个二叉树的根节点 root ,返回它的 中序 遍历。
/**
* 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().
*/int BinaryTreeSize(struct TreeNode* root)
{
if(root==NULL)
{
return 0;
}return BinaryTreeSize(root->left) + BinaryTreeSize(root->right) +1;
}void _inorderTraversal(struct TreeNode* root, int* a,int* pi)
{
if(root == NULL)
{
return;
}//左子树
_inorderTraversal(root->left, a,pi);
//根
a[(*pi)++] = root->val;
//右子树
_inorderTraversal(root->right, a,pi);
}int* inorderTraversal(struct TreeNode* root, int* returnSize)
{
//1.获取二叉树结点个数
int size = BinaryTreeSize(root);
//2.动态开辟数组
int* a = (int*)malloc(sizeof(int)*size);
//3.中序遍历,结点数据存入数组a中//数组初始下标
int i = 0;
_inorderTraversal(root, a, &i);
*returnSize = size;
return a;
}
推荐阅读
- LeetCode编程题解法汇总|力扣解法汇总2055-蜡烛之间的盘子
- 数据结构|LeetCode(206. 反转链表)
- 错题锦集|C语言错题锦集(持续更新)
- 算法训练(C语言版本)|112. 路径总和
- 二叉树(Binary|LeetCode 337. House Robber III - 二叉树系列题25
- 小项目集合|C语言小项目——通讯录(适合刚学完C语言的初学者)
- LeetCode|【每日一题】——合并区间
- LeetCode|【每日一题】——单调递增的数字
- 剑指offer编程题解法汇总|力扣解法汇总504-七进制数