2019.3.36
//exercise 25.3
public void inorderUsingStack(){
inorderUsingStack(root);
}
private void inorderUsingStack(TreeNode<T> root){
if(root == null)
return;
Stack<TreeNode<T>> stack = new Stack<>();
TreeNode<T> current = root;
while(current != null || !stack.isEmpty()){
if(current != null){
stack.push(current);
current = current.left;
}
else{
current = stack.pop();
System.out.print(current.element+" ");
current = current.right;
}
}
}