Python DFS + Stack and BFS + Queue Solution
\n#BFS + queue\n\n    def findBottomLeftValue(self, root):\n        if not root:\n            return\n\n        max_depth = 0\n        queue = [(root, 1)]\n    
```\n#BFS + queue\n\n    def findBottomLeftValue(self, root):\n        if not root:\n            return\n\n        max_depth = 0\n        queue = [(root, 1)]\n        \n        while queue:\n            curr, level = queue.pop(0)\n            if curr:\n                if level > max_depth:\n                    max_depth = level\n                    ans = curr.val\n                queue.append((curr.left, level + 1))\n                queue.append((curr.right, level + 1))\n        return ans\n```     \n```\n#DFS + stack   \n\n    def findBottomLeftValue(self, root):\n        if not root:\n            return\n        max_depth = 0\n        stack = [(root, 1)]\n         \n        while stack:\n            curr, level = stack.pop()\n            if curr:\n                if level > max_depth:\n                    max_depth = level\n                    ans = curr.val\n                stack.append((curr.right, level + 1))\n                stack.append((curr.left, level + 1))\n        return ans\n```
[]