【发布时间】:2013-03-03 22:03:11
【问题描述】:
编辑:我更新了帖子以回答您的一些问题。这是一个编程作业。我的解决方案不起作用: 要回答这个线程上的 cmets,它应该按字母顺序找到最大的字符串。例如,“Tom”比“Andy”大。
编写一个递归方法来查找单链表中的最大值。从类 LinkedList 继承并添加递归方法。您将需要使用迭代器来访问链表的每个节点。您可能需要添加一个辅助方法来启动递归。使用驱动程序类填充您的链接列表并证明您的方法有效。向驱动程序类添加额外的测试。 提供的驱动程序类中最大的是 Tom。
提供的驱动类:
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;
}}
谁能告诉我我做错了什么?谢谢。
【问题讨论】:
-
largest定义在哪里? -
请尽量使您的问题尽可能具体。 “它不起作用”不是问题。
-
你所说的最大是什么意思 - 有最大长度?
-
从 LinkedList 继承是一个非常非常糟糕的建议。
-
不,它应该按字母顺序找到最大的。
标签: java recursion iterator linked-list compare