0
点赞
收藏
分享

微信扫一扫

java 后序 前序 中序是什么

Java后序、前序和中序遍历是什么

在讨论Java后序、前序和中序遍历之前,我们先了解一下二叉树。二叉树是一种常见的数据结构,它由节点构成,每个节点最多有两个子节点:左子节点和右子节点。二叉树的遍历是指按照一定的顺序访问二叉树的所有节点。

前序遍历

前序遍历是指先访问根节点,然后按照先左后右的顺序访问左子树和右子树。

// 前序遍历
void preorder(TreeNode node) {
if (node == null) {
return;
}
// 访问根节点
System.out.println(node.val);
// 遍历左子树
preorder(node.left);
// 遍历右子树
preorder(node.right);
}

以下是一个二叉树的示例:

     1
/ \
2 3
/ \
4 5

通过前序遍历,输出结果为:1 2 4 5 3。

中序遍历

中序遍历是指按照左子树、根节点、右子树的顺序访问二叉树的节点。

// 中序遍历
void inorder(TreeNode node) {
if (node == null) {
return;
}
// 遍历左子树
inorder(node.left);
// 访问根节点
System.out.println(node.val);
// 遍历右子树
inorder(node.right);
}

通过中序遍历,输出结果为:4 2 5 1 3。

后序遍历

后序遍历是指按照左子树、右子树、根节点的顺序访问二叉树的节点。

// 后序遍历
void postorder(TreeNode node) {
if (node == null) {
return;
}
// 遍历左子树
postorder(node.left);
// 遍历右子树
postorder(node.right);
// 访问根节点
System.out.println(node.val);
}

通过后序遍历,输出结果为:4 5 2 3 1。

应用场景

不同的遍历顺序适用于不同的应用场景。下面以一个示例来说明它们的应用。

假设有一个二叉搜索树,我们需要将其中的节点值按照从小到大的顺序输出。

对于这个问题,中序遍历是最合适的。因为二叉搜索树的特点是左子树的节点值都比根节点小,右子树的节点值都比根节点大。所以通过中序遍历可以按照从小到大的顺序输出节点值。

// 中序遍历二叉搜索树
void inorder(TreeNode node) {
if (node == null) {
return;
}
inorder(node.left);
System.out.println(node.val);
inorder(node.right);
}

总结

在Java中,二叉树的遍历方式有三种:前序遍历、中序遍历和后序遍历。前序遍历是先访问根节点,再遍历左子树和右子树;中序遍历是先遍历左子树,再访问根节点,再遍历右子树;后序遍历是先遍历左子树和右子树,再访问根节点。

不同的遍历顺序适用于不同的应用场景。比如,中序遍历适用于二叉搜索树中按照从小到大的顺序输出节点值。

希望通过本文的介绍,读者对Java中的二叉树遍历有了更深入的了解。

参考链接:

  • [LeetCode 二叉树的前序遍历(144题)](
  • [LeetCode 二叉树的中序遍历(94
举报

相关推荐

0 条评论