Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 链表和BST树找到最低的_Java - Fatal编程技术网

Java 链表和BST树找到最低的

Java 链表和BST树找到最低的,java,Java,我正在准备下周的cs期中考试。我们收到了一份期中考试样本,我想知道我是否做对了 编写一个方法public T lowest(),该方法返回类中最大的元素 public class List<T extends Comparable<T>> { private Node<T> head; // some methods here private class Node<T> { T data;

我正在准备下周的cs期中考试。我们收到了一份期中考试样本,我想知道我是否做对了

  • 编写一个方法public T lowest(),该方法返回类中最大的元素

    public class List<T extends Comparable<T>>
    { 
         private Node<T> head;
         // some methods here
         private class Node<T>
         {
             T data;
             Node<T> next;
         }
    }
    
  • 您的代码在while循环中有一个bug,它将进入无限循环。仅当指针发现某个节点的值小于当前最小值时,才向前移动指针。无论发生什么情况,您都必须不断向前移动指针,并在满足条件时更新min变量。wile循环应如下所示:

    while(指针!=null){
    if(指针数据比较到(最小值)<0){
    min=指针数据;
    }
    指针=pointer.next;
    }

  • 您的代码在while循环中有一个bug,它将进入无限循环。仅当指针发现某个节点的值小于当前最小值时,才向前移动指针。无论发生什么情况,您都必须不断向前移动指针,并在满足条件时更新min变量。wile循环应如下所示:

    while(指针!=null){
    if(指针数据比较到(最小值)<0){
    min=指针数据;
    }
    指针=pointer.next;
    }


  • 对于Q2,要查找树中的最低节点值还是树中的最低叶?无论如何,你做得不对。您的代码将返回树中最左边的叶子的数据值。@JayeshDoolani我认为最左边的叶子总是具有最低的值,所以我返回了该值。啊,您是对的。我认为这是一个普通的二叉树,而不是BST。在这种情况下,您的代码将适用于Q2,您想在树中找到最低的节点值还是树中最低的叶子?无论如何,你做得不对。您的代码将返回树中最左边的叶子的数据值。@JayeshDoolani我认为最左边的叶子总是具有最低的值,所以我返回了该值。啊,您是对的。我以为这是一个普通的二叉树,而不是BST。那样的话,你的代码就行了谢谢你,我没听懂。谢谢,我没听懂
    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 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;
    }