1、定义节点类
class Node {int val;Node left;Node right;Node(int val) {this.val = val;}
}public class BinaryTree {/*** 前序遍历* @param root 节点*/public void preorderTraversal(Node root) {if (root != null) {System.out.print(root.val + " ");preorderTraversal(root.left);preorderTraversal(root.right);}}
}
1)解析
首先,定义了一个 Node 类表示二叉树的节点。节点包含了一个整型的 val 值,以及左右两个子节点的引用。
然后,定义了 BinaryTree 类,该类包含了一个方法 preorderTraversal,用于实现前序遍历。
前序遍历的顺序是:先遍历根节点,然后遍历左子树,最后遍历右子树。
如果二叉树为空,则直接返回。否则,先输出根节点的值,然后递归遍历左子树和右子树。
2)使用方法
首先创建二叉树的节点,然后构建二叉树,最后调用 BinaryTree 类的 preorderTraversal 方法进行前序遍历。
2、测试代码
public class TestTree {public static void main(String[] args) {// 构建二叉树Node root = new Node(1);root.left = new Node(2);root.right = new Node(3);root.left.left = new Node(4);root.left.right = new Node(5);// 先序遍历BinaryTree bt = new BinaryTree();System.out.print("Preorder Traversal: ");bt.preorderTraversal(root); // 1 2 4 5 3
}
PS
Java 实现 二叉树的 前序遍历:https://www.cnblogs.com/miracle-luna/p/17368605.html
Java 实现 二叉树的 中序遍历:https://www.cnblogs.com/miracle-luna/p/17368610.html
Java 实现 二叉树的 后序遍历:https://www.cnblogs.com/miracle-luna/p/17368606.html