Tree: Depth-First Search - House Robber III (On Tree)
Examine the following snippet from a House Robber III solution:
```python
def dfs(node):
if not node:
return (0, 0)
left = dfs(node.left)
right = dfs(node.right)
rob_current = node.val + left[0] + right[0]
not_rob_current = max(left) + max(right)
return (not_rob_current, rob_current)
```
Identify the subtle bug causing incorrect results.
