https://www.geeksforgeeks.org/construct-bst-from-given-preorder-traversa/