题目描述
白话题目:
算法:
详细解释关注 B站 【C语言全代码】学渣带你刷Leetcode 不走丢 https://www.bilibili.com/video/BV1C7411y7gB
C语言完全代码
void PreOrder(struct TreeNode *root, int *ret, int *retIndex)
{
if (root == NULL) {
return;
}
/* 这行代码 ret[(*retIndex)++] = root->val; 放在这里,输出是前序遍历 */
ret[(*retIndex)++] = root->val;
PreOrder(root->left, ret, retIndex);
/* 这行代码 ret[(*retIndex)++] = root->val; 放在这里,输出是中序遍历 */
PreOrder(root->right, ret, retIndex);
/* 这行代码 ret[(*retIndex)++] = root->val; 放在这里,输出是后序遍历 */
}
/**
* Note: The returned array must be malloced, assume caller calls free().
*/
int *preorderTraversal(struct TreeNode *root, int *returnSize)
{
int retIndex = 0;
int *ret = (int *)malloc(sizeof(int) * 100);
memset(ret, 0, sizeof(int) * 100);
PreOrder(root, ret, &retIndex);
*returnSize = retIndex;
return ret;
}