Leetcode Find Largest Value in Each Tree Row problem solution YASH PAL, 31 July 2024 In this Leetcode Find Largest Value in Each Tree Row problem solution Given the root of a binary tree, return an array of the largest value in each row of the tree (0-indexed). Problem solution in Python. class Solution(object): def largestValues(self, root): """ :type root: TreeNode :rtype: List[int] """ arr = [] def search(node, depth): if not node: return if len(arr) < depth + 1: arr.append(node.val) else: arr[depth] = max(arr[depth], node.val) search(node.left, depth + 1) search(node.right, depth + 1) search(root, 0) return arr Problem solution in Java. class Solution { public List<Integer> largestValues(TreeNode root) { List<Integer> ret = new ArrayList<>(); if(root==null) return ret; Queue<TreeNode> q = new LinkedList<>(); q.add(root); int max = 0; int size = 1; while(!q.isEmpty()){ size = q.size(); max = Integer.MIN_VALUE; for(int i = 0; i < size; i++){ TreeNode n = q.poll(); if(n.val > max) max = n.val; if(n.left!=null) q.add(n.left); if(n.right!=null) q.add(n.right); } ret.add(max); } return ret; } } Problem solution in C++. class Solution { void rowLargest(TreeNode* node, int lvl, map<int, int>& god){ if(!node) return ; if(!god.count(lvl)) god[lvl] = node->val; else god[lvl] = max(node->val, god[lvl]); rowLargest(node->left, lvl+1, god); rowLargest(node->right, lvl+1, god); } public: vector<int> largestValues(TreeNode* root) { map<int, int> rowgod; rowLargest(root, 0, rowgod); vector<int> ans; for(auto &it: rowgod) ans.push_back(it.second); return ans; } }; coding problems