我必须以矢量形式返回链表的元素。如何以矢量形式返回链表。我尝试了以下但无法得到正确的结果。谁能告诉我我做错了什么?
package BasicList1;
import java.util.Vector;
public class BasicList1 implements ListInterface{
static String[] testcase1 = {"3","1","2","6","7","4","5"};
public static void main (String[] args){
BasicList1 testInstance = new BasicList1();
ListNode head = new ListNode(testcase1[0]);
ListNode node = head;
System.out.println(testInstance.elements(head));
System.out.println(testInstance.length(head));
}
public BasicList1 getBasicList(String data){
return this;
}
//write your code here
public Vector<String> elements(ListNode head){
ListNode temp=head;
Vector v=new Vector();
while(temp!=null){
System.out.println(temp.data);
temp=temp.next;
v.addElement(temp);
}
return v;
}
public int length(ListNode head) {
int count=0;
for(int i=0;i<testcase1.length;i++){
count++;
}
return count;
}
答案 0 :(得分:1)
如果我没错,你得到的输出就像:
3
1
2
6
7
4
5
7 <= Length of the list
但是,向量的长度是7,元素的序列是=&gt; 1,2,6,7,4,5,null。
这是因为在将其添加到Vector之前,您将转移到下一个元素。代码:
System.out.println(temp.data);
temp=temp.next;
v.addElement(temp);
正确的方法应该是:
System.out.println(temp.data);
v.addElement(temp);
temp=temp.next;
我希望这能解决你的问题。