返回前n个元素的链表

时间:2013-11-18 16:43:12

标签: java linked-list return

好的,我需要写一个方法; MyLinkedList getFirst(int n) - 返回前n个元素的链表。如果列表为空或n> size返回null。

而我迷路了,我已经完成了mothods添加,删除,添加到中间,打印一串元素,等等但是这个让我卡住了..

到目前为止,我所拥有的只是:

public MyLinkedList<E> getFirst(int n) {
    if(n > size ) {
        return null;
    }
    Node<E> current = head;
    for (int i = 0; i == n; i++) {
        current.next = new Node<E>(e);
    }
}

我知道这段代码是非常错误的,但是我能想到的一直都是在这个任务中工作了一段时间而且我只是用完了蒸汽我想lol

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

  1. 创建一个空列表
  2. 将头部添加到列表中
  3. 继续将下一个节点添加到列表中,直到您有前n个节点。

答案 1 :(得分:1)

 public MyLinkedList getFirstN(int n) {
    MyLinkedList firstNList=new MyLinkedList();//create an empty list
    if(n>size)
        firstNList= null;
    else {
        Node tmp=head; //initialise tmp Node to the head(beginning) of list
        for(int i=0;i<n;i++) {
            firstNList.add(tmp);//add current node to the end of list
            tmp=tmp.getNext();
        }
    }
    return firstNList;
}

实施add(Node node)方法,将Node附加到列表末尾。

答案 2 :(得分:0)

您可以将其用作原型并继续执行任何操作

public class Node {
    private int data;
    private Node next;

    public Node(int data) {
        this.data = data;
    }

    public int getData() {
        return data;
    }

    public void setData(int data) {
        this.data = data;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }

    public Node(int data, Node next) {
        this.data = data;
        this.next = next;
    }

}


public class LinkedList {
    private Node start;

    public LinkedList() {
        start = null;
    }

    public void insert(int x) {
        if(start == null) {
            start = new Node(x, start);
        } else {  
            Node temp = start;

            while(temp.getNext() != null) {
                temp = temp.getNext();
            }
            Node newNode = new Node(x,null);
            temp.setNext(newNode);
        }
    }

    public void getFirst() {
        if(start == null) {
            System.out.println("\n List is empty !!");
        }
        else  {
            Node temp = start;
            System.out.println("\n First Element is --->" + temp.getData());
        }
    }

}

public class MainClass {
    public static void main(String[] args) {
        LinkedList ll = new LinkedList();

        System.out.println("\n--- Inserting 100 ---\n");
        ll.insert(100);

        ll.insert(101);
        ll.insert(102);
        ll.insert(103);

        System.out.println("\n--- First Element ---\n");
        ll.getFirst();

    } 

}