树的遍历方法并且代码举例用java
时间: 2024-04-08 07:32:57 浏览: 79
树的遍历方法主要有三种:前序遍历、中序遍历和后序遍历。下面是使用Java语言实现这三种遍历方法的代码示例:
```java
// 树节点的定义
class TreeNode {
int val;
TreeNode left;
TreeNode right;
public 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.print("前序遍历结果:");
preorderTraversal(root);
System.out.println();
System.out.print("中序遍历结果:");
inorderTraversal(root);
System.out.println();
System.out.print("后序遍历结果:");
postorderTraversal(root);
System.out.println();
}
```
以上代码实现了树的前序遍历、中序遍历和后序遍历,并给出了一个简单的测试示例。你可以根据需要修改树的结构和节点值进行测试。
阅读全文