二叉搜索树(Binary Search Tree,BST)是一种特殊的二叉树,其每个节点的值都大于其左子树中的任何节点值,并且小于其右子树中的任何节点值。这种特性使得二叉搜索树在查找、插入和删除操作上具有较高的效率。
以下是一个简单的Java递归实现二叉搜索树的示例,包括插入和查找操作:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int val) {
this.val = val;
left = null;
right = null;
}
}
public class BinarySearchTree {
private TreeNode root;
public BinarySearchTree() {
root = null;
}
// 插入节点
public void insert(int val) {
root = insertRec(root, val);
}
private TreeNode insertRec(TreeNode root, int val) {
if (root == null) {
root = new TreeNode(val);
return root;
}
if (val < root.val) {
root.left = insertRec(root.left, val);
} else if (val > root.val) {
root.right = insertRec(root.right, val);
}
return root;
}
// 查找节点
public boolean search(int val) {
return searchRec(root, val);
}
private boolean searchRec(TreeNode root, int val) {
if (root == null) {
return false;
}
if (root.val == val) {
return true;
}
if (val < root.val) {
return searchRec(root.left, val);
} else {
return searchRec(root.right, val);
}
}
}
Alluxio Day 2021
Alluxio Day 2021
Alluxio Day 2021
Techo Day
小程序云开发官方直播课(应用开发实战)
北极星训练营
API网关系列直播
Tencent Serverless Hours 第13期
开箱吧腾讯云
开箱吧腾讯云
开箱吧腾讯云
领取专属 10元无门槛券
手把手带您无忧上云