Java 二叉树查找算法实现 - 简单易懂的代码示例
这里给出一个简单的 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。
原文地址: https://www.cveoy.top/t/topic/mskH 著作权归作者所有。请勿转载和采集!