#[derive(Debug, Ord, PartialOrd, Eq, PartialEq)]
pub struct TreeNode {
pub val: i32,
pub left: Option<Rc<RefCell<TreeNode>>>,
pub right: Option<Rc<RefCell<TreeNode>>>,
}
impl TreeNode {
pub fn new(val: i32) -> TreeNode {
TreeNode {
val,
left: None,
right: None,
}
}
}
pub fn traverse_post(root: Option<Rc<RefCell<TreeNode>>>) -> Vec<i32> {
let mut vec = vec![];
dfs(root, &mut vec);
return vec;
fn dfs(node: Option<Rc<RefCell<TreeNode>>>, list: &mut Vec<i32>) {
if let Some(x)=node {
dfs(x.borrow().left.clone(), list);
list.push(x.borrow().val);
dfs(x.borrow().right.clone(),list);
}
}
}
这段代码在dfs中,x.borrow()那里一直报错,让我指定type annotation ,有人知道这该怎么解决吗,谢谢~