Python DFS one pass
\nclass Solution:\n    def get_node(self, root, curr_height=1): \n        if not root:\n            return [-1, -1]\n        if not root.left and not root.right
```\nclass Solution:\n    def get_node(self, root, curr_height=1): \n        if not root:\n            return [-1, -1]\n        if not root.left and not root.right:\n            return [root.val, curr_height]\n        left = self.get_node(root.left, curr_height + 1)\n        right = self.get_node(root.right, curr_height + 1)\n        return left if left[1] >= right[1] else right\n        \n    def findBottomLeftValue(self, root: TreeNode) -> int:\n        return self.get_node(root)[0]\n```
[]