Hello everyone! I'm quite confused why the following code doesn't pass. Leetcode says it passes 123/124 which means only the last dataset is too large for the algorithm. I wonder anyone can help me point out what's making the following algorithm too slow? Thanks a lot!

"""

class TreeNode(object):

def **init**(self, x):

self.val = x

self.left = None

self.right = None

class Solution(object):

def rob(self, root):

```
def robHelper(root, flag):
if not root:
return 0
if flag == 1:
total = root.val + robHelper(root.left, 0) + robHelper(root.right, 0)
elif flag == 0:
total = max(robHelper(root.left, 0), robHelper(root.left, 1)) + max(robHelper(root.right, 0), robHelper(root.right, 1))
return total
return max(robHelper(root, 0), robHelper(root, 1))
```

"""