尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

DeepSeek LeetCode 107. 二叉树的层序遍历 II Rust实现

发布时间:2026/9/26 16:26:33

资讯中心
01
ARTICLE

DeepSeek LeetCode 107. 二叉树的层序遍历 II Rust实现

DeepSeek    LeetCode 107. 二叉树的层序遍历 II Rust实现
LeetCode 107. 二叉树的层序遍历 II Rust 实现思路和 Python 版本一致先用 BFS 自顶向下逐层收集最后把结果整体反转得到自底向上的层序遍历。Rust 中需要处理 OptionRcRefCell 的所有权和借用问题队列使用 VecDeque。Rust 代码usestd::rc::Rc;usestd::cell::RefCell;usestd::collections::VecDeque;// Definition for a binary tree node.// #[derive(Debug, PartialEq, Eq)]// pub struct TreeNode {// pub val: i32,// pub left: OptionRcRefCellTreeNode,// pub right: OptionRcRefCellTreeNode,// }//// impl TreeNode {// #[inline]// pub fn new(val: i32) - Self {// TreeNode {// val,// left: None,// right: None,// }// }// }implSolution{pubfnlevel_order_bottom(root:OptionRcRefCellTreeNode)-VecVeci32{letmutres:VecVeci32Vec::new();ifroot.is_none(){returnres;}letmutqueue:VecDequeRcRefCellTreeNodeVecDeque::new();queue.push_back(root.unwrap());while!queue.is_empty(){letlevel_sizequeue.len();letmutlevelVec::with_capacity(level_size);for_in0..level_size{letnode_rcqueue.pop_front().unwrap();letnodenode_rc.borrow();level.push(node.val);// 克隆 Rc增加引用计数将子节点加入队列ifletSome(left)node.left.clone(){queue.push_back(left);}ifletSome(right)node.right.clone(){queue.push_back(right);}}res.push(level);}// 自底向上反转结果res.reverse();res}}关键点说明队列元素类型VecDequeRcRefCell。Rc 提供共享所有权RefCell 提供内部可变性虽然这里只读但树节点定义如此。借用与克隆从队列取出 Rc 后用 borrow() 获得 Ref 来读取 val。访问 left / right 时因为 node 是 Ref不能移动出字段所以用 .clone() 克隆 OptionRc…这只是增加 Rc 的引用计数开销很小。反转结果最后 res.reverse() 原地反转得到自底向上的顺序。复杂度分析项目 复杂度时间 O(n)每个节点入队出队一次空间 O(n)队列最大宽度 结果数组示例验证输入 3 / \ 9 20 / \ 15 7 BFS 自顶向下[[3], [9, 20], [15, 7]] 反转后 [[15, 7], [9, 20], [3]]另一种写法DFS 递归可选usestd::rc::Rc;usestd::cell::RefCell;implSolution{pubfnlevel_order_bottom(root:OptionRcRefCellTreeNode)-VecVeci32{letmutres:VecVeci32Vec::new();fndfs(node:OptionRcRefCellTreeNode,depth:usize,res:mutVecVeci32){ifletSome(n)node{letnn.borrow();ifdepthres.len(){res.push(Vec::new());}res[depth].push(n.val);dfs(n.left.as_ref(),depth1,res);dfs(n.right.as_ref(),depth1,res);}}dfs(root.as_ref(),0,mutres);res.reverse();res}}DFS 同样是 O(n) 时间但递归深度最坏为 O(n)实际刷题推荐 BFS。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

◈

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

◐

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

▲

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。