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

Java函数实现树结构操作(如前/中/后序遍历、查找最小/大值等)

发布时间:2023-09-28 07:10:03

在Java中,可以使用递归方法实现树结构的操作。假设我们有一个类表示树节点,其中包含左子节点、右子节点和节点值。

首先,我们来实现树的前序遍历。前序遍历顺序是先访问根节点,再访问左子树,最后访问右子树。代码如下:

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

public class TreeTraversal {
    public void preOrder(TreeNode root) {
        if (root != null) {
            System.out.print(root.val + " ");
            preOrder(root.left);
            preOrder(root.right);
        }
    }
}

接下来,我们实现树的中序遍历。中序遍历顺序是先访问左子树,然后访问根节点,最后访问右子树。代码如下:

public class TreeTraversal {
    public void inOrder(TreeNode root) {
        if (root != null) {
            inOrder(root.left);
            System.out.print(root.val + " ");
            inOrder(root.right);
        }
    }
}

最后,我们实现树的后序遍历。后序遍历顺序是先访问左子树,然后访问右子树,最后访问根节点。代码如下:

public class TreeTraversal {
    public void postOrder(TreeNode root) {
        if (root != null) {
            postOrder(root.left);
            postOrder(root.right);
            System.out.print(root.val + " ");
        }
    }
}

查找树的最小值和最大值也可以使用递归方法实现。代码如下:

public class TreeOperations {
    public int findMin(TreeNode root) {
        if (root.left == null) {
            return root.val;
        } else {
            return findMin(root.left);
        }
    }
    
    public int findMax(TreeNode root) {
        if (root.right == null) {
            return root.val;
        } else {
            return findMax(root.right);
        }
    }
}

通过以上的代码,我们可以实现树结构的基本操作,包括前序/中序/后序遍历和查找最小/大值等。