Easy Java Solution ✅ || BFS
Code\n\nclass Solution {\n    public int findBottomLeftValue(TreeNode root) {\n        Queue<TreeNode> q = new ArrayDeque<>();\n        ArrayList<ArrayList<Inte
# Code\n```\nclass Solution {\n    public int findBottomLeftValue(TreeNode root) {\n        Queue<TreeNode> q = new ArrayDeque<>();\n        ArrayList<ArrayList<Integer>> ans = new ArrayList<>();\n        q.add(root);\n        while(!q.isEmpty()){\n            int n = q.size();\n            ArrayList<Integer> ll = new ArrayList<>();\n            while(n>0){\n                TreeNode x = q.poll();\n                if(x.left != null)\n                    q.add(x.left);\n                if(x.right != null)    \n                    q.add(x.right);\n                ll.add(x.val);\n                n--;\n            }\n            ans.add(ll);\n        }\n        return ans.get(ans.size()-1).get(0);\n    }\n}\n```\n![9c6f9412-c860-47d6-9a2e-7fcf37ff3321_1686334926.180891.png](https://assets.leetcode.com/users/images/1bfdbe2b-4db6-4aa5-984f-24cb7348a3c6_1709094406.3139613.png)\n
['Breadth-First Search', 'Java']