【发布时间】:2020-03-07 06:19:32
【问题描述】:
我目前正在学习数据结构和算法课程。上一节课,我的教授在黑板上放了一些代码来解释如何编写size()、height() 和left()/right() 方法来教我们两个平衡以备测验。
他在黑板上写了你在下面看到的代码,但他提到虽然他犯了一个错误,但现在要专注于逻辑,他必须运行一些测试才能理解他的错误。
public class BT<T> {
TreeNode<T> root;
BT<T> myTree;
//size
public int size() {
if(this.isEmpty())
return 0;
return (1 + this.left().size() + this.right().size());
}
//isEmpty()
public boolean isEmpty() {
return (root == null);
}
//left
public BT<T> left() {
return root.left;
}
public BT<T> right() {
return root.right;
}
}
周末,我试图自己解决这个问题,因为在我教授的办公时间,由于有大量学生在期中访问他,他无法编写代码。
有什么办法可以解决这个问题?
编辑:
这是TreeNode<T> 类
class TreeNode<T> {
T data;
TreeNode<T> left;
TreeNode<T> right;
}
它在同一个包的另一个类中。
【问题讨论】:
-
"有什么办法可以修复这个方法?" 哪个方法?如果您要询问
left()和right()方法,我们不能不看TreeNode的定义。 -
刚刚使用 TreeNode
类进行了编辑。
标签: java data-structures syntax-error binary-tree