problem
solution
preorder[l]為根節點,並從inorder[l:r]找到該節點,並用此節點切割,左半部為此節點的左子樹,右半部為此節點的右子樹,並遞迴下去。
root->left = build(preorder, pl+1, pl +idx-il, inorder, il, idx-1 );
為什麼不是pl+1+idx-1-il+1 ? 因為idx-1-il+1是從跟節點開始計算offset,已包含 從pl開始找起的offset 所以不需再加一。
1  | class Solution {  | 
analysis
- time complexity 
O(n^2) - space complexity 
O(n^2)n is node number