Find Largest Value in Each Tree Row LeetCode solution in Rust
1use std::cell::RefCell;2use std::cmp::max;3use std::rc::Rc;45impl Solution {6pub fn largest_values(root: Option<Rc<RefCell<TreeNode>>>) -> Vec<i32> {7let mut res: Vec<i32> = vec![];8let mut queue = vec![root];9while !queue.is_empty() {10let k = queue.len();11let mut current_max = i32::MIN;12for _i in 0..k {13match queue.remove(0) {14Some(r) => {15current_max = max(current_max, r.borrow().val);16if !r.borrow().left.is_none() {17queue.push(r.borrow().left.clone());18}19if !r.borrow().right.is_none() {20queue.push(r.borrow().right.clone());21}22}23None => return res,24};25}26res.push(current_max);27}28return res;29}30}