aboutsummaryrefslogtreecommitdiff
path: root/binary_tree_preorder.rs
diff options
context:
space:
mode:
Diffstat (limited to 'binary_tree_preorder.rs')
-rw-r--r--binary_tree_preorder.rs35
1 files changed, 0 insertions, 35 deletions
diff --git a/binary_tree_preorder.rs b/binary_tree_preorder.rs
deleted file mode 100644
index da6e0b8..0000000
--- a/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
- }
-}