Simple Java Solution, beats 100.0%!
java\npublic class Solution {\n    int ans=0, h=0;\n    public int findBottomLeftValue(TreeNode root) {\n        findBottomLeftValue(root, 1);\n        return a
``` java\npublic class Solution {\n    int ans=0, h=0;\n    public int findBottomLeftValue(TreeNode root) {\n        findBottomLeftValue(root, 1);\n        return ans;\n    }\n    public void findBottomLeftValue(TreeNode root, int depth) {\n        if (h<depth) {ans=root.val;h=depth;}\n        if (root.left!=null) findBottomLeftValue(root.left, depth+1);\n        if (root.right!=null) findBottomLeftValue(root.right, depth+1);\n    }\n}\n```\n\nNo global variables, 6ms (faster):\n```\npublic class Solution {\n    public int findBottomLeftValue(TreeNode root) {\n        return findBottomLeftValue(root, 1, new int[]{0,0});\n    }\n    public int findBottomLeftValue(TreeNode root, int depth, int[] res) {\n        if (res[1]<depth) {res[0]=root.val;res[1]=depth;}\n        if (root.left!=null) findBottomLeftValue(root.left, depth+1, res);\n        if (root.right!=null) findBottomLeftValue(root.right, depth+1, res);\n        return res[0];\n    }\n}\n```
[]