/**
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(). */ typedef struct TreeNode Node;void PreOrder(Noderoot,intprs,int*index) { if(root) { PreOrder(root->left,prs,index); PreOrder(root->right,prs,index); prs[*index]=root->val; (*index)++; } }
int GetTreeSize(Node*root) { if(NULL==root) { return 0; } return GetTreeSize(root->left)+GetTreeSize(root->right)+1; }
int* postorderTraversal(struct TreeNode* root, int* returnSize){ returnSize=GetTreeSize(root); int prs=(int*)malloc(sizeof(int)*(*returnSize)); if(NULL==prs) assert(0); int index=0; PreOrder(root,prs,&index); return prs; }
