// 前序遍历
void preorder(struct TreeNode* root, int *ret, int* returnSize)
{
if(!root)
{
return;
}
ret[(*returnSize)++] = root->val;
preorder(root->left, ret, returnSize);
preorder(root->right, ret, returnSize);
}
int* preorderTraversal(struct TreeNode* root, int* returnSize) {
int *ret=(int *)malloc(sizeof(int) * 2000);
*returnSize = 0;
preorder(root, ret, returnSize);
return ret;
}
leetcode94
中序遍历
/**
* 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().
*/
void preorder(struct TreeNode* root, int *ret, int* returnSize)
{
if(!root)
{
return;
}
preorder(root->left, ret, returnSize);
ret[(*returnSize)++] = root->val;
preorder(root->right, ret, returnSize);
}
int* inorderTraversal(struct TreeNode* root, int* returnSize) {
int *ret=(int *)malloc(sizeof(int) * 2000);
*returnSize = 0;
preorder(root, ret, returnSize);
return ret;
}
leetcode145
后序遍历
void preorder(struct TreeNode* root, int *ret, int* returnSize)
{
if(!root)
{
return;
}
preorder(root->left, ret, returnSize);
preorder(root->right, ret, returnSize);
ret[(*returnSize)++] = root->val;
}
int* postorderTraversal(struct TreeNode* root, int* returnSize) {
int *ret=(int *)malloc(sizeof(int) * 2000);
*returnSize = 0;
preorder(root, ret, returnSize);
return ret;
}