LeetCode_105Construct Binary Tree from Preorder and Inorder Traversal

来源:互联网 发布:区域生长算法详解 编辑:程序博客网 时间:2024/06/12 00:54

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

     public TreeNode buildTree(int[] preorder, int[] inorder) {            int size = inorder.length;            if(size == 0) return null;            return buildNodes(preorder, inorder, 0, preorder.length-1, 0, inorder.length-1);        }     private TreeNode buildNodes(int[] preorder,int[] inorder,int pstart, int pend, int istart, int iend){         if (pstart > pend) return null;         int point = preorder[pstart];         int i;         for( i = istart;i<iend;i++){             if(inorder[i] == point){                 break;             }         }         TreeNode treeNode = new TreeNode(point);         int leftSize = i - istart;         treeNode.left = buildNodes(preorder, inorder, pstart+1, pstart+leftSize, istart, i-1);         treeNode.right = buildNodes(preorder, inorder,  pstart+leftSize+1, pend, i+1, iend);         return treeNode;     }
0 0
原创粉丝点击