題目
輸入某二叉樹的前序遍歷和中序遍歷的結果,請重建該二叉樹。假設輸入的前序遍歷和中序遍歷的結果中都不含重復的數字。
例如,給出
前序遍歷 preorder = [3,9,20,15,7]中序遍歷 inorder = [9,3,15,20,7]返回如下的二叉樹:
3 / / 9 20 / / 15 7
限制:
0 <= 節點個數 <= 5000
答案
/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Solution { public TreeNode buildTree(int[] preorder, int[] inorder) { int n = preorder.length; if (n == 0) return null; int rootVal=preorder[0],rootIndex=0; for(int i=0;i