欢迎访问宙启技术站
智能推送

Java函数实现二叉树的前序遍历

发布时间:2023-07-04 00:16:49

前序遍历是一种二叉树的遍历方式,它从根节点开始,先遍历根节点,然后递归地遍历左子树和右子树。

对于给定的二叉树,我们可以使用递归方式实现前序遍历。下面是使用Java语言实现的前序遍历函数:

// 定义二叉树的节点类
class TreeNode {
    int val;
    TreeNode left;
    TreeNode right;

    TreeNode(int val) {
        this.val = val;
        left = null;
        right = null;
    }
}

// 实现前序遍历的函数
public class PreorderTraversal {
    public void preorder(TreeNode root) {
        if (root == null) {
            return;
        }
        // 先遍历根节点
        System.out.print(root.val + " ");
        // 递归遍历左子树
        preorder(root.left);
        // 递归遍历右子树
        preorder(root.right);
    }

    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);

        // 创建一个PreorderTraversal对象
        PreorderTraversal traversal = new PreorderTraversal();
        // 调用preorder函数进行前序遍历
        traversal.preorder(root);
    }
}

上述代码中,我们定义了一个TreeNode类来表示二叉树的节点,其中包含节点的值val以及左子节点 left和右子节点 right

然后,我们定义了一个PreorderTraversal类来实现前序遍历。在preorder函数中,首先判断当前节点是否为空,如果为空则直接返回;否则,先输出当前节点的值,然后递归遍历左子树和右子树。

最后,在main函数中,我们构造了一个二叉树,并调用preorder函数进行前序遍历。

运行以上代码,输出结果为1 2 4 5 3,表示二叉树前序遍历的结果。