From d9022f78bbcf0f9ca0bf3056ca29ae8d49a15bec Mon Sep 17 00:00:00 2001 From: Dale Seo <5466341+DaleSeo@users.noreply.github.com> Date: Sat, 6 Jun 2026 16:28:54 -0400 Subject: [PATCH] leetcode-study --- binary-tree-level-order-traversal/DaleSeo.rs | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 binary-tree-level-order-traversal/DaleSeo.rs diff --git a/binary-tree-level-order-traversal/DaleSeo.rs b/binary-tree-level-order-traversal/DaleSeo.rs new file mode 100644 index 000000000..a4163f14e --- /dev/null +++ b/binary-tree-level-order-traversal/DaleSeo.rs @@ -0,0 +1,31 @@ +// TC: O(n) +// SC: O(n) +use std::cell::RefCell; +use std::collections::VecDeque; +use std::rc::Rc; + +impl Solution { + pub fn level_order(root: Option>>) -> Vec> { + let mut output = Vec::new(); + let mut queue = VecDeque::new(); + if let Some(node) = root { + queue.push_back(node); + } + while !queue.is_empty() { + let mut values = Vec::with_capacity(queue.len()); + for _ in 0..queue.len() { + let node = queue.pop_front().unwrap(); + let node = node.borrow(); + values.push(node.val); + if let Some(left) = node.left.clone() { + queue.push_back(left); + } + if let Some(right) = node.right.clone() { + queue.push_back(right); + } + } + output.push(values); + } + output + } +}