用JAVA编写修改二叉链表类的定义,添加两个方法,分别返回二叉树的最大值和最大值所在层次。
时间: 2024-05-07 17:16:13 浏览: 13
好的,这是一个计算机科学问题,非常适合我回答。以下是修改后的二叉链表类的定义:
```
public class BinarySearchTree {
private Node root;
private class Node {
int key;
Node left, right;
int level;
public Node(int key, int level) {
this.key = key;
this.level = level;
}
}
public void insert(int key) {
root = insert(root, key, 1);
}
private Node insert(Node x, int key, int level) {
if (x == null) return new Node(key, level);
if (key < x.key) x.left = insert(x.left, key, level+1);
else if (key > x.key) x.right = insert(x.right, key, level+1);
return x;
}
public int findMax() {
return findMax(root);
}
private int findMax(Node x) {
if (x.right == null) return x.key;
return findMax(x.right);
}
public int findMaxLevel() {
return findMaxLevel(root, 1);
}
private int findMaxLevel(Node x, int level) {
if (x.right == null) return level;
return findMaxLevel(x.right, level+1);
}
}
```
其中,`findMax()` 方法返回二叉树中的最大值,`findMaxLevel()` 方法返回最大值所在的层次。你可以直接将这些方法添加到你的二叉链表类中使用。希望对你有所帮助!