Given two integer arrays `preorder` and `inorder` where `preorder` is the preorder traversal of a binary tree and `inorder` is the inorder traversal of the same tree, construct and return the binary tree.
Recursive Partitioning
Preorder traversal always starts with the root of the current subtree. Inorder traversal has the root in the middle, splitting it into a left subtree and a right subtree. We can recursively: (1) pick the first element of preorder as root, (2) find its position in inorder to determine left/right subtree boundaries, and (3) repeat for children.