之前给大家介绍了java二叉树前序遍历递归和非递归实现的内容,下面就接着给大家介绍java中序遍历递归和非递归实现的内容,一起看看吧。
1、中序遍历
看看访问顺序:左子树-根节点-右子树;
上面图片的访问结果是ADEFGHMZ;
(1)递归实现public void inOrderTraverse(TreeNode root)
{
if (root != null)
{
inOrderTraverse(root.left);
System.out.print(root.val + "->");
inOrderTraverse(root.right);
}
}
(2)非递归实现public void inOrderTraverse(TreeNode root)
{
Stack stack = new Stack ();
TreeNode node = root;
while (node != null || !stack.isEmpty())
{
if (node != null)
{
stack.push(node);
node = node.left;
}
else
{
TreeNode tem = stack.pop();
System.out.print(tem.val + "->");
node = tem.right;
}
}
}
以上的实现方式你都清楚了吗?你还想了解更多java程序代码例子吗?请继续来奇Q工具网进行了解吧。
推荐阅读: