如何将链接列表添加到矢量?

时间:2014-03-23 15:46:14

标签: java vector linked-list

我必须以矢量形式返回链表的元素。如何以矢量形式返回链表。我尝试了以下但无法得到正确的结果。谁能告诉我我做错了什么?

    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;
        }

1 个答案:

答案 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;

我希望这能解决你的问题。