这里给出一个简单的 Java 实现树查询的例子:

假设有一棵二叉树,每个节点包含一个整数值,我们需要实现一个查询函数,输入一个整数,返回在树中是否存在这个值。

首先定义节点类:

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

然后定义树类:

class Tree {
    TreeNode root;
    public boolean contains(int val) {
        return containsHelper(root, val);
    }
    private boolean containsHelper(TreeNode node, int val) {
        if (node == null) {
            return false;
        }
        if (node.val == val) {
            return true;
        }
        return containsHelper(node.left, val) || containsHelper(node.right, val);
    }
}

在树类中定义了一个 contains 方法,它调用了一个私有的 containsHelper 方法进行递归查询。containsHelper 方法会先判断当前节点是否为 null,如果是则返回 false,否则判断当前节点的值是否等于目标值,如果是则返回 true,否则递归查询左右子树,只要有一个子树包含目标值就返回 true,否则返回 false。

使用方法:

Tree tree = new Tree();
TreeNode node1 = new TreeNode(1);
TreeNode node2 = new TreeNode(2);
TreeNode node3 = new TreeNode(3);
TreeNode node4 = new TreeNode(4);
TreeNode node5 = new TreeNode(5);
TreeNode node6 = new TreeNode(6);
TreeNode node7 = new TreeNode(7);
node1.left = node2;
node1.right = node3;
node2.left = node4;
node2.right = node5;
node3.left = node6;
node3.right = node7;
tree.root = node1;
System.out.println(tree.contains(4)); // true
System.out.println(tree.contains(8)); // false

在这个例子中,我们创建了一棵二叉树,并调用了 contains 方法查询是否包含某个值,输出结果为 true 或 false。

Java 二叉树查找算法实现 - 简单易懂的代码示例

原文地址: https://www.cveoy.top/t/topic/mskH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录