Java教程

Java二叉树遍历的非递归算法(前序)

本文主要是介绍Java二叉树遍历的非递归算法(前序),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

二叉树迭代:

遍历左子树

无论左子树为空还是右子树为空:

  1. 出栈操作
  2. 访问右子树
public String preOrder(TreeNode root) {
		StringBuffer sb = new StringBuffer();
		Deque<TreeNode> stack = new ArrayDeque<>();
		TreeNode p = root;
		while (p != null || !stack.isEmpty()) {
			while (p != null) {//访问左子树 
                sb.append(p.val);
				stack.push(p);
				p = p.left;
			}

			if (!stack.isEmpty()) {//出栈操作
				p = stack.pop();
				p = p.right;
			}
		}
		return sb.toString();

	}

这篇关于Java二叉树遍历的非递归算法(前序)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!