LeetCode 106 Construct Binary Tree from Inorder and Postorder Traversal

来源:互联网 发布:抢购软件 编辑:程序博客网 时间:2024/05/01 02:38
题目


Given inorder and postorder traversal of a tree, construct the binary tree.

思路


1 很典型的面试题,和http://blog.csdn.net/xift810/article/details/19204495思路一样。

2 注意这里的边界条件,我的代码已经简化了。


代码


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



0 0
原创粉丝点击