在Java中,二叉树的遍历算法有三种常见的方式:前序遍历、中序遍历和后序遍历。下面是这三种遍历算法的示例代码:
// 二叉树节点类
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public TreeNode(int val) {
this.val = val;
}
}
// 二叉树遍历类
class BinaryTreeTraversal {
// 前序遍历
public void preOrderTraversal(TreeNode root) {
if (root == null) {
return;
}
System.out.print(root.val + " "); // 先访问根节点
preOrderTraversal(root.left); // 再访问左子树
preOrderTraversal(root.right); // 最后访问右子树
}
// 中序遍历
public void inOrderTraversal(TreeNode root) {
if (root == null) {
return;
}
inOrderTraversal(root.left); // 先访问左子树
System.out.print(root.val + " "); // 再访问根节点
inOrderTraversal(root.right); // 最后访问右子树
}
// 后序遍历
public void postOrderTraversal(TreeNode root) {
if (root == null) {
return;
}
postOrderTraversal(root.left); // 先访问左子树
postOrderTraversal(root.right); // 再访问右子树
System.out.print(root.val + " "); // 最后访问根节点
}
}
public class Main {
public static void main(String[] args) {
// 构建二叉树
TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);
BinaryTreeTraversal traversal = new BinaryTreeTraversal();
System.out.print("前序遍历:");
traversal.preOrderTraversal(root);
System.out.println();
System.out.print("中序遍历:");
traversal.inOrderTraversal(root);
System.out.println();
System.out.print("后序遍历:");
traversal.postOrderTraversal(root);
System.out.println();
}
}
以上代码定义了一个二叉树节点类TreeNode
,以及一个二叉树遍历类BinaryTreeTraversal
。在BinaryTreeTraversal
类中,分别定义了前序遍历、中序遍历和后序遍历的方法。在Main
类中,构建了一个二叉树,并调用BinaryTreeTraversal
类的遍历方法进行遍历操作。
运行上述代码,输出结果为:
前序遍历:1 2 4 5 3
中序遍历:4 2 5 1 3
后序遍历:4 5 2 3 1
以上代码只是一个简单的示例,实际应用中二叉树的构建和遍历可能更加复杂,可以根据实际需求进行相应的修改和扩展。
下一篇:java平方根用代码怎么实现
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站