Skip to content

Commit

Permalink
Update 二叉树中递归带着回溯.md
Browse files Browse the repository at this point in the history
  • Loading branch information
fwqaaq authored Nov 18, 2022
1 parent 944ce27 commit 4bae1e8
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions problems/二叉树中递归带着回溯.md
Original file line number Diff line number Diff line change
Expand Up @@ -649,6 +649,43 @@ impl Solution {
}
```

> 257.二叉树的不同路径
```rust
// 递归
use std::cell::RefCell;
use std::rc::Rc;
impl Solution {
pub fn binary_tree_paths(root: Option<Rc<RefCell<TreeNode>>>) -> Vec<String> {
let mut res = vec![];
let mut path = vec![];
Self::recur(&root, &mut path, &mut res);
res
}

pub fn recur(
root: &Option<Rc<RefCell<TreeNode>>>,
path: &mut Vec<String>,
res: &mut Vec<String>,
) {
let node = root.as_ref().unwrap().borrow();
path.push(node.val.to_string());
if node.left.is_none() && node.right.is_none() {
res.push(path.join("->"));
return;
}
if node.left.is_some() {
Self::recur(&node.left, path, res);
path.pop(); //回溯
}
if node.right.is_some() {
Self::recur(&node.right, path, res);
path.pop(); //回溯
}
}
}
```


<p align="center">
<a href="https://programmercarl.com/other/kstar.html" target="_blank">
Expand Down

0 comments on commit 4bae1e8

Please sign in to comment.