LeetCode106 Construct Binary Tree from Inorder and Postorder Traversal

题目链接:

https://leetcode.com/problems/construct-binary-tree-from-inorder-and-postorder-traversal/

题目描述:

中序后序建树。

题目分析:

就是先建立好根结点,再根据这个根结点递归的不停的划分左右子树。

代码:

void createBinaryTree(struct TreeNode **root,int *inorder,int *postorder,int len){
     for(int i=0;i<len;i++){
         if(postorder[len-1]==inorder[i]){
             *root=(struct TreeNode*)malloc(sizeof(struct TreeNode*));
             (*root)->val=postorder[len-1];
             (*root)->left=(*root)->right=NULL;
             createBinaryTree(&((*root)->left),inorder,postorder,i); createBinaryTree(&((*root)->right),inorder+i+1,postorder+i,len-i-1); break; } } } struct TreeNode* buildTree(int* inorder, int inorderSize, int* postorder, int postorderSize) { struct TreeNode* root=NULL; createBinaryTree(&root,inorder,postorder,inorderSize); return root; }

你可能感兴趣的:(LeetCode,递归,树,序列建树)