diff options
Diffstat (limited to 'other/binary_tree_preorder.rs')
-rw-r--r-- | other/binary_tree_preorder.rs | 35 |
1 files changed, 0 insertions, 35 deletions
diff --git a/other/binary_tree_preorder.rs b/other/binary_tree_preorder.rs deleted file mode 100644 index da6e0b8..0000000 --- a/other/binary_tree_preorder.rs +++ /dev/null @@ -1,35 +0,0 @@ -use std::rc::Rc; -use std::cell::RefCell; -#[derive(Debug, PartialEq, Eq)] -pub struct TreeNode { - pub val: i32, - pub left: Option<Rc<RefCell<TreeNode>>>, - pub right: Option<Rc<RefCell<TreeNode>>>, -} - -impl TreeNode { - #[inline] - pub fn new(val: i32) -> Self { - TreeNode { - val, left: None, - right: None - } - } -} - -struct Solution; - -impl Solution { - pub fn preorder_traversal(root: Option<Rc<RefCell<TreeNode>>>) -> Vec<i32> { - let mut ans: Vec<i32> = Vec::new(); - let mut stack: Vec<Option<Rc<RefCell<TreeNode>>>> = vec![root]; - while let Some(last) = stack.pop() { - if let Some(n) = last { - ans.push(n.borrow().val); - stack.push(n.borrow().right.clone()); - stack.push(n.borrow().left.clone()); - } - } - ans - } -} |