数据结构(Java):力扣& 二叉树面试OJ题
以下是一个简单的二叉搜索树的构建和查询的Java代码示例:
class TreeNode {
int val;
TreeNode left;
TreeNode right;
TreeNode(int x) {
val = x;
}
}
public class Solution {
public TreeNode insertIntoBST(TreeNode root, int val) {
if (root == null) {
return new TreeNode(val);
}
if (val < root.val) {
root.left = insertIntoBST(root.left, val);
} else {
root.right = insertIntoBST(root.right, val);
}
return root;
}
public boolean searchBST(TreeNode root, int val) {
if (root == null) {
return false;
}
if (root.val == val) {
return true;
} else if (val < root.val) {
return searchBST(root.left, val);
} else {
return searchBST(root.right, val);
}
}
public static void main(String[] args) {
Solution solution = new Solution();
TreeNode root = null;
root = solution.insertIntoBST(root, 4);
root = solution.insertIntoBST(root, 2);
root = solution.insertIntoBST(root, 7);
root = solution.insertIntoBST(root, 1);
root = solution.insertIntoBST(root, 3);
System.out.println(solution.searchBST(root, 2)); // true
System.out.println(solution.searchBST(root, 5)); // false
}
}
这段代码定义了一个二叉搜索树的节点类TreeNode
,以及一个解决方案类Solution
,其中包含了向二叉搜索树中插入节点和查询节点是否存在的方法。在main
方法中,我们构建了一个二叉搜索树并进行了查询示例。
评论已关闭