```
# class TreeNode(object):
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution(object):
def constructMaximumBinaryTree(self, nums):
"""
:type nums: List[int]
:rtype: TreeNode
"""
if not nums:
return
index_of_max = nums.index(sorted(nums, reverse=True)[0])
left_arr = nums[:index_of_max]
right_arr = nums[index_of_max + 1:]
node = TreeNode(nums[index_of_max])
node.left = self.constructMaximumBinaryTree(left_arr)
node.right = self.constructMaximumBinaryTree(right_arr)
return node```
This was accepted as a solution, however when browsing through other solutions, it feels to me as if this is lacking/incomplete/might fail some time
I have only recently started practicing binary trees algorithms and would like to know how to improve. What do I need to change in my mindset in order to see the recursive solutions clearer.
```