阅读量:3
在Java中,二叉树的遍历有三种方式:前序遍历、中序遍历和后序遍历。下面是这三种遍历方式的代码示例:
// 定义二叉树节点 class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; } } // 前序遍历 void preOrderTraversal(TreeNode root) { if (root == null) { return; } System.out.print(root.val + " "); // 先访问根节点 preOrderTraversal(root.left); // 再前序遍历左子树 preOrderTraversal(root.right); // 最后前序遍历右子树 } // 中序遍历 void inOrderTraversal(TreeNode root) { if (root == null) { return; } inOrderTraversal(root.left); // 先中序遍历左子树 System.out.print(root.val + " "); // 再访问根节点 inOrderTraversal(root.right); // 最后中序遍历右子树 } // 后序遍历 void postOrderTraversal(TreeNode root) { if (root == null) { return; } postOrderTraversal(root.left); // 先后序遍历左子树 postOrderTraversal(root.right); // 再后序遍历右子树 System.out.print(root.val + " "); // 最后访问根节点 }
使用时,可以先构建二叉树,然后根据需要选择对应的遍历方法进行遍历。例如:
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); // 前序遍历 System.out.println("前序遍历结果:"); preOrderTraversal(root); // 中序遍历 System.out.println("\n中序遍历结果:"); inOrderTraversal(root); // 后序遍历 System.out.println("\n后序遍历结果:"); postOrderTraversal(root); }