94. 二叉树的中序遍历

40 阅读1分钟

94. 二叉树的中序遍历

简单

相关标签

premium lock icon相关企业

给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。

 

示例 1:

输入: root = [1,null,2,3]
输出: [1,3,2]

示例 2:

输入: root = []
输出: []

示例 3:

输入: root = [1]
输出: [1]

 

提示:

  • 树中节点数目在范围 [0, 100] 内
  • -100 <= Node.val <= 100

 

进阶: 递归算法很简单,你可以通过迭代算法完成吗?

题解:

void inorder(struct TreeNode* root, int* returnSize, int* ans)
{
    if(root == NULL)
    {
        return;
    }

    if (root->left != NULL)
    {
        inorder(root->left, returnSize, ans);
    }
    ans[*returnSize] = root->val;
    (*returnSize) ++;
    if (root->right != NULL)
    {
        inorder(root->right, returnSize, ans);
    }
}



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