java二叉树的遍历算法
时间: 2023-07-10 17:10:47 浏览: 95
Java中二叉树的遍历算法一般有三种:前序遍历、中序遍历和后序遍历,它们的实现方式都是基于递归或者栈的。下面分别介绍它们的实现方法。
1. 前序遍历
前序遍历的顺序是先访问根节点,然后访问左子树,最后访问右子树。Java代码实现如下:
```java
public void preOrder(TreeNode root) {
if(root == null) {
return;
}
System.out.print(root.val + " ");
preOrder(root.left);
preOrder(root.right);
}
```
2. 中序遍历
中序遍历的顺序是先访问左子树,然后访问根节点,最后访问右子树。Java代码实现如下:
```java
public void inOrder(TreeNode root) {
if(root == null) {
return;
}
inOrder(root.left);
System.out.print(root.val + " ");
inOrder(root.right);
}
```
3. 后序遍历
后序遍历的顺序是先访问左子树,然后访问右子树,最后访问根节点。Java代码实现如下:
```java
public void postOrder(TreeNode root) {
if(root == null) {
return;
}
postOrder(root.left);
postOrder(root.right);
System.out.print(root.val + " ");
}
```
以上代码中,TreeNode表示二叉树的节点,val表示节点的值,left和right分别表示左子树和右子树。三种遍历方式都是基于递归实现的,当遇到叶子节点时结束递归。具体实现中,先访问根节点,然后分别访问左子树和右子树,并依次递归调用preOrder、inOrder和postOrder方法。
除了递归实现外,还可以使用栈实现二叉树的遍历,这种方式比递归实现更加灵活,适用于大型二叉树或者需要非递归实现的情况。
阅读全文