LeetCode - Construct Binary Tree from Inorder and Postorder Traversal

来源:互联网 发布:组态王软件价格 编辑:程序博客网 时间:2024/06/08 06:41

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

这道题跟之前 Construct Binary Tree from Inorder and Preorder Traversal 思路完全一样,就是根节点和子树在数组中的位置变了。

代码如下:

public class Solution {    public TreeNode buildTree(int[] inorder, int[] postorder) {        if(postorder == null || postorder.length == 0) return null;        TreeNode root = construct(postorder, 0, postorder.length-1, inorder, 0, inorder.length-1);        return root;    }    public TreeNode construct(int[] postorder, int pstart, int pend, int[] inorder, int istart, int iend){        if(pstart > pend) return null;        TreeNode root = new TreeNode(postorder[pend]);        if(pstart == pend) return root;        int i;        for(i=istart; i<=iend; i++){            if(inorder[i]==postorder[pend]) break;        }        root.left = construct(postorder, pstart, pstart+i-istart-1, inorder, istart, i-1);        root.right = construct(postorder, pstart+i-istart, pend-1, inorder, i+1, iend);        return root;    }}


0 0
原创粉丝点击