下面给大家分享的是java二叉树前序遍历的递归以及非递归实现的例子,想了解的人一起来看看下面的实例吧。
1、前序遍历
了解一下访问顺序:
首先是根节点,之后是左子树,最后是右子树;
上面示图的访问结果为GDAFEMHZ;
(1)递归实现
来看一下递归实现代码:
public void preOrderTraverse1(TreeNode root) { if (root != null) { System.out.print(root.val + "->"); preOrderTraverse1(root.left); preOrderTraverse1(root.right); } }
(2)非递归实现
来看一下非递归实现代码:
public void preOrderTraverse2(TreeNode root) { Stack < TreeNode > stack = new Stack < > (); TreeNode node = root; while (node != null || !stack.empty()) { if (node != null) { System.out.print(node.val + "->"); stack.push(node); node = node.left; } else { TreeNode tem = stack.pop(); node = tem.right; } } }
以上的实现你都了解了吗?你还想了解更多和java二叉树有关的实现实例吗?可以继续关注奇Q工具网,里面有更多的java程序代码例子可以给你分享哦。
推荐阅读: