编辑:我更新了线程以回答您的一些问题。这是一个编程作业。我的解决方案不起作用:要回答此线程上的评论,它应该按字母顺序找到最大的字符串。例如,“汤姆”比“安迪”大。
编写一个递归方法来查找单链表中的最大值。从类 LinkedList 继承并添加递归方法。您将需要使用迭代器来访问链表的每个节点。您可能需要添加一个辅助方法来启动递归。使用驱动程序类填充您的链接列表并证明您的方法有效。向驱动程序类添加额外的测试。提供的驱动程序类中最大的是汤姆。
提供的驱动程序类:
public class MyLinkedListDriver {
public static void main(String[] args) {
// TODO Auto-generated method stub
MyLinkedList myLinkedList = new MyLinkedList();
myLinkedList.add("Sarah");
myLinkedList.add("Barbara");
myLinkedList.add("Tom");
myLinkedList.add("George");
String largest = myLinkedList.findLargest();
System.out.println(largest);
System.out.println(myLinkedList.get(0));
}}
我的解决方案(不起作用):嗯,我得到空指针异常。
import java.util.Iterator;
import java.util.LinkedList;
public class MyLinkedList extends LinkedList<String> {
Iterator<String> it = super.iterator();
String largest=it.next();
public String findLargest(){
if (it.hasNext()==false){
return largest;
}
else{
String temp = it.next();
int x=largest.compareTo(temp);
if(x>0){
largest=temp;
}
findLargest();
}
return largest;
}}
有人可以告诉我我做错了什么吗?谢谢你。