public TreeNode buildNode(int[] preorder, int[] inorder, int preStart, int preEnd, int inStart, int inEnd) {
		if(preStart > preEnd || inStart > inEnd) return null;
		TreeNode node = new TreeNode(preorder[preStart]);
		for(int i = 0; i <= inEnd - inStart; i++) {
			if(preorder[preStart] == inorder[i + inStart]) {
				node.left = buildNode(preorder, inorder, preStart + 1, preStart + i, inStart, inStart + i - 1);
				node.right = buildNode(preorder, inorder, preStart + i + 1, preEnd, inStart + i + 1, inEnd);
				break;
			}
		}
		return node;
	}