Find Largest Value in Each Tree Row LeetCode solution in Rust

1
use std::cell::RefCell;
2
use std::cmp::max;
3
use std::rc::Rc;
4

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

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0