二叉树的遍历

164 阅读1分钟

前序遍历

前序遍历(Preorder Traversal)

前序遍历顺序:根节点、前序遍历左子树,前序遍历右子树。

所谓前序遍历,是把根节点放在前面。

如图,则其遍历顺序为:

根节点左子树右子树
74 2 1 3 59 8 11 10 12

代码:

	private void preorderTraversal(Node<E> node) {
		if (node == null) return;

		System.out.println(node.element);
		preorderTraversal(node.left);
		preorderTraversal(node.right);
	}

中序遍历

中序遍历(Inorder Traversal)

访问顺序:中序遍历左子树、根节点、中序遍历右子树。

根据图中的序号,我们可知其遍历结果为: 1 2 3 4 5 6 7 8 9 10 11 12

而如果访问顺序是中序遍历右子树、根节点、中序遍历左子树,则顺序是: 12 11 10 9 8 7 6 5 4 3 2 1 可知,二叉搜索树的中序遍历结果是升序或者降序。

代码:

	/**
	 * 中序遍历
	 */
	public void inorderTraversal() {
		inorderTraversal(root);
	}

	private void inorderTraversal(Node<E> node) {
		if (node == null) return; //如果为空,则结束。

		inorderTraversal(node.left);
		System.out.println(node.element);
		inorderTraversal(node.right);
	}