二叉树的中序遍历-实现方式Deque

一、JAVA的实现

JAVA二叉树的中序遍历,除了用递归,还可以用栈Deque来实现,

对栈常规操作有插入即push(),弹出栈顶元素即pop()方法,还有判断栈为空的stack.isEmpty()。
  Deque<TreeNode> stack = new LinkList<TreeNode>();
  if(!stack.isEmpty()){}
  stack.push(root);
  root = stack.pop();

二、c++的实现

c++则是用stack stack;实现,

对栈常规操作有插入push(),提栈顶元素是top(),弹出栈顶元素是pop()方法,还有判断栈为空的statck.isEmpty()。
  if(!stack.isEmpty()){}
  stack.push(root);
  root = stack.top();
  stack.pop();

三、两者区别

JAVA的pop()和c++的pop()有所差异,JAVA是返回栈顶地址并且直接删除栈顶,而c++是只删除不返回;
因此c++是先提栈顶元素再pop()。

  root = stack.top();
  stack.pop();

此题出处

posted @ 2020-11-07 16:17  acchris  阅读(236)  评论(0)    收藏  举报