Java 0 ms and 100% faster, simple dfs with simple comments
class Solution {\n    \n    //to keep track of the level and the left most value by defining global variables\nint level = 0 ; \nint leftMost ; \n    \n    publ
```class Solution {\n    \n    //to keep track of the level and the left most value by defining global variables\nint level = 0 ; \nint leftMost ; \n    \n    public int findBottomLeftValue(TreeNode root) {\n        //edge case \n        if (root.left == null && root.right == null) return root.val ;  \n        \n        //using dfs in-order traversal by calling helper function \n        dfs(root, level) ;   \n        \n        //returning the leftMost value in the last row\n        return leftMost ; \n    }\n    \n    private void dfs(TreeNode root, int level) {\n       \n        \n        if (root != null) {\n            \n            //if the current level is greater then the global variable level, we update the leftMost\n            if (level > this.level) { \n                this.level = level ; \n                leftMost = root.val ; \n            }\n              \n            //recursive call on the left with level + 1, since the child is on the level which is greater by 1 \n            if (root.left != null)\n            dfs(root.left, level + 1) ;\n            \n            //similarly, recursive call on the right child \n            if (root.right != null)\n            dfs(root.right, level + 1) ; \n        }\n    } \n        \n}```\n\nAny q\'s, comments, or concerns? Would be more than happy to help!
['Depth-First Search', 'Recursion', 'Java']