This commit is contained in:
krahets
2023-10-27 23:48:10 +08:00
parent a42c1d62b9
commit 368cbf4261
10 changed files with 195 additions and 212 deletions
+7 -7
View File
@@ -227,19 +227,19 @@ comments: true
```rust title="binary_tree_bfs.rs"
/* 层序遍历 */
fn level_order(root: &Rc<RefCell<TreeNode>>) -> Vec<i32> {
// 初始化队列,加入根
// 初始化队列,加入根
let mut que = VecDeque::new();
que.push_back(Rc::clone(&root));
// 初始化一个列表,用于保存遍历序列
let mut vec = Vec::new();
while let Some(node) = que.pop_front() { // 队列出队
vec.push(node.borrow().val); // 保存点值
vec.push(node.borrow().val); // 保存点值
if let Some(left) = node.borrow().left.as_ref() {
que.push_back(Rc::clone(left)); // 左子点入队
que.push_back(Rc::clone(left)); // 左子点入队
}
if let Some(right) = node.borrow().right.as_ref() {
que.push_back(Rc::clone(right)); // 右子点入队
que.push_back(Rc::clone(right)); // 右子点入队
};
}
vec
@@ -654,7 +654,7 @@ comments: true
let mut result = vec![];
if let Some(node) = root {
// 访问优先级:根点 -> 左子树 -> 右子树
// 访问优先级:根点 -> 左子树 -> 右子树
result.push(node.borrow().val);
result.append(&mut pre_order(node.borrow().left.as_ref()));
result.append(&mut pre_order(node.borrow().right.as_ref()));
@@ -667,7 +667,7 @@ comments: true
let mut result = vec![];
if let Some(node) = root {
// 访问优先级:左子树 -> 根点 -> 右子树
// 访问优先级:左子树 -> 根点 -> 右子树
result.append(&mut in_order(node.borrow().left.as_ref()));
result.push(node.borrow().val);
result.append(&mut in_order(node.borrow().right.as_ref()));
@@ -680,7 +680,7 @@ comments: true
let mut result = vec![];
if let Some(node) = root {
// 访问优先级:左子树 -> 右子树 -> 根
// 访问优先级:左子树 -> 右子树 -> 根
result.append(&mut post_order(node.borrow().left.as_ref()));
result.append(&mut post_order(node.borrow().right.as_ref()));
result.push(node.borrow().val);