【发布时间】:2017-03-01 14:50:58
【问题描述】:
我正在准备下周的 CS 期中考试。我们收到了一份期中考试样本,我想知道我这样做是否正确。
-
编写一个方法 public T lower() 返回类中最大的元素。
public class List<T extends Comparable<T>> { private Node<T> head; // some methods here private class Node<T> { T data; Node<T> next; } }这是我的答案:
public T lowest() { if(head == null) return null; Node<T> pointer = head; T min = pointer.data; while(pointer != null) { if(pointer.data.compareTo(min) < 0) // { min = pointer.data; pointer = pointer.next; } } return min;}
-
编写一个方法 public T lower() 返回存储在树中的最小值。
public class BST<T extends Comparable<T>> { private Node<T> root; // some methods here private class Node<T> { T data; Node<T> left, right; } }
这是我的答案:
public T lowest()
{
Node current = root;
while(current.left != null)
{
current = current.left;
}
return current.data;
}
【问题讨论】:
-
对于Q2,你想找到树中最低的节点值还是树中最低的叶子?无论如何,你做错了。您的代码将返回树中最左侧叶子的数据值。
-
@JayeshDoolani 我认为最左边的叶子总是具有最低值,所以这就是我返回该值的原因
-
啊,你说得对。我认为这是一个通用的二叉树而不是 BST。在这种情况下,您的代码将起作用
标签: java