二叉树遍历递归java
时间: 2023-11-12 12:54:55 浏览: 81
二叉树的遍历递归是一种按照特定顺序访问二叉树结点的方法。具体来说,有前序遍历、中序遍历和后序遍历三种方式。
前序遍历是先访问根节点,再依次访问左子树和右子树。中序遍历是先访问左子树,再访问根节点,最后访问右子树。后序遍历是先访问左子树,再访问右子树,最后访问根节点。
以下是一个二叉树的遍历递归的Java代码示例:
```java
class Node {
int data;
Node left, right;
public Node(int item) {
data = item;
left = right = null;
}
}
class BinaryTree {
Node root;
BinaryTree() {
root = null;
}
// 前序遍历
void preorderTraversal(Node node) {
if (node == null)
return;
System.out.print(node.data + " ");
preorderTraversal(node.left);
preorderTraversal(node.right);
}
// 中序遍历
void inorderTraversal(Node node) {
if (node == null)
return;
inorderTraversal(node.left);
System.out.print(node.data + " ");
inorderTraversal(node.right);
}
// 后序遍历
void postorderTraversal(Node node) {
if (node == null)
return;
postorderTraversal(node.left);
postorderTraversal(node.right);
System.out.print(node.data + " ");
}
public static void main(String[] args) {
BinaryTree tree = new BinaryTree();
tree.root = new Node(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.root.left.left = new Node(4);
tree.root.left.right = new Node(5);
System.out.print("前序遍历: ");
tree.preorderTraversal(tree.root);
System.out.println();
System.out.print("中序遍历: ");
tree.inorderTraversal(tree.root);
System.out.println();
System.out.print("后序遍历: ");
tree.postorderTraversal(tree.root);
System.out.println();
}
}
```
阅读全文