题解 | #从中序与后序遍历序列构造二叉树#

从中序与后序遍历序列构造二叉树

http://www.nowcoder.com/practice/ab8dde7f01f3440fbbb7993d2411a46b

alt

struct TreeNode* buildTree(int* inorder, int inorderLen, int* postorder, int postorderLen ) {
    // write code here
    if(inorderLen==0){
        return NULL;
    }
    
    struct TreeNode* head=(struct TreeNode*)malloc(sizeof(struct TreeNode));
    head->val=postorder[postorderLen-1];
    
    int k=0;
    int left_length=0;
    int right_length=0;
    
    while(postorder[postorderLen-1]!=inorder[k]){
        k++;
    }
    
    left_length=k;
    right_length=inorderLen-k-1;
    
    head->left=buildTree(inorder, left_length, postorder, left_length);
    head->right=buildTree(inorder+k+1, right_length, postorder+k, right_length);
    return head;
}
全部评论
图上的错了
点赞 回复 分享
发布于 2023-03-22 21:40 云南

相关推荐

点赞 评论 收藏
分享
评论
5
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务