java 树的后序遍历_java二叉树后序遍历递归和非递归实现

之前给大家介绍了java二叉树前序遍历和中序遍历递归和非递归的实现,接下来要给大家介绍的就是java二叉树后序遍历的递归以及非递归的实现的内容。

f9fb1263874c472a1a1922fea68cd005.png

访问顺序-左子树-右子树-根节点。

上图的访问结果-AEFDHZMG。

1、递归实现public void postOrderTraverse(TreeNode root)

{

if (root != null)

{

postOrderTraverse(root.left);

postOrderTraverse(root.right);

System.out.print(root.val + "->");

}

}

2、非递归实现public void postOrderTraverse(TreeNode root)

{

TreeNode cur, pre = null;

Stack  stack = new Stack  ();

stack.push(root);

while (!stack.empty())

{

cur = stack.peek();

if ((cur.left == null && cur.right == null) || (pre != null && (pre == cur.left || pre == cur.right)))

{

System.out.print(cur.val + "->");

stack.pop();

pre = cur;

}

else

{

if (cur.right != null)

stack.push(cur.right);

if (cur.left != null)

stack.push(cur.left);

}

}

}

对于java二叉树后序遍历的递归以及非递归实现你都清楚了吗?更多相关内容,请继续关注奇Q工具网的java实例栏目来进行了解吧。

推荐阅读:


版权声明:本文为weixin_29306571原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。