返回前n个元素的链接列表



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

我迷路了,我已经做了添加、删除、添加到中间、打印一系列元素等方法,但这一个让我卡住了。。

到目前为止,我只有:

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

我知道这个代码是非常错误的,但我所能想到的就是在这个任务上工作了一段时间,我只是没有动力了,我想哈哈

谢谢你的帮助。

  1. 创建一个空列表
  2. 将标题添加到列表中
  3. 继续将下一个节点添加到列表中,直到拥有前n个节点为止
 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附加到列表的末尾。

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

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

相关内容

  • 没有找到相关文章

最新更新