Leetcode Find Bottom Left Tree Value problem solution YASH PAL, 31 July 2024 In this Leetcode Find Bottom Left Tree Value problem solution Given the root of a binary tree, return the leftmost value in the last row of the tree. Problem solution in Python. class Solution: def findBottomLeftValue(self, root: TreeNode) -> int: if not root: return stack = [root] while stack: res = [] temp = [] for i in stack: if i: if i.left: temp.append(i.left) if i.right: temp.append(i.right) res.append(i.val) stack = temp return res[0] Problem solution in Java. class Solution { public int findBottomLeftValue(TreeNode root) { if(root == null) throw new IllegalArgumentException(); TreeMap<Integer,Integer> depthsMap = new TreeMap(); populateSiblings(root, depthsMap , 1); Integer last = depthsMap.lastKey(); return depthsMap.get(last); } public void populateSiblings(TreeNode root, TreeMap<Integer,Integer> depthsMap , int depth ) { if (root == null) return; depthsMap.computeIfAbsent(depth , x -> root.val); populateSiblings(root.left, depthsMap , depth+1); populateSiblings(root.right, depthsMap , depth+1); } } Problem solution in C++. class Solution { public: int findBottomLeftValue(TreeNode* root) { queue<TreeNode*> q; q.push(root); int n = -1; while (q.size()) { n = q.front()->val; int s = q.size(); for (int i = 0; i < s; ++i) { TreeNode* node = q.front(); q.pop(); if (node->left) q.push(node->left); if (node->right) q.push(node->right); } } return n; } }; coding problems