```
def depth(tree):
if not tree: return 0
left_depth = depth(tree["left_child"])
right_depth = depth(tree["right_child"])
if left_depth > right_depth:
return left_depth + 1
else:
return right_depth + 1
tree = {
'left_child': {
'left_child': {
'left_child': None,
'data': 1,
'right_child': None
},
'data': 2,
'right_child': None
},
'data': 3,
'right_child': {
'left_child': None,
'data': 4,
'right_child': None
}
}
```

```
print(depth(tree)) #??? 2???
```

Sorry, I can not understand how it works??? I can not describe the callback, execution context in this case??? Does anyone can help??? Thanks for in advance.