Tree traversal: Difference between revisions

m
 
Line 10,328:
let mut stack: Vec<&TreeNode<T>> = Vec::new();
let mut res: Vec<&TreeNode<T>> = Vec::new();
let mut option_treeopt = Some(self);
while {
// Descend leftwards
while let Some(tree) = option_treeopt {
stack.push(tree);
option_treeopt = tree.left.as_deref();
}
!stack.is_empty()
Line 10,340:
let tree = stack.pop().unwrap();
res.push(tree);
option_treeopt = tree.right.as_deref();
}
res