我需要建立一个双向的LinkedList,它接受一个String并为其中的每个字符构建节点。

public class doublyLinkedlist{
    private Node first;
    private Node last;

    public doublyLinkedList(String a){
        first=new Node(a.charAt(0),null);
        last=new Node(a.charAt(1),first);
    }
}


因此,如果我有一个String "ab",则第一个包含“ a”,最后一个包含“ b”。

但这不是我想要的。我的构造函数应该能够为char中的每个String构建节点。有人可以向我解释LinkedList的双重工作原理吗?

谢谢。

最佳答案

您如何定义Node类?尝试像

  class Node
{
  String val;

  Node next, prev;

  public Node getNext() {
    return next;
}

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

public Node getPrev() {
    return prev;
}

public void setPrev(Node prev) {
    this.prev = prev;
}

public Node(String v)
  {
      val=v;
  }


您将需要添加功能来设置下一个和上一个节点。现在,在doublyLinkedlist类的构造函数中,您基本上就可以拆分输入字符串并为每个字符创建一个Node。同样,设置下一个和上一个。有帮助吗?如果需要,我可以提供更详细的代码,但我恳请您尝试。

好的,所以您的doublyLinkedlist构造函数看起来像

public doublyLinkedlist(String a) {

         String [] arr = a.split("");

         first = new Node(arr[0]);

         last = new Node(arr[arr.length-1]);

         first.setPrev(last);

         last.setNext(first);
         Node temp = first;
         for (int i=1 ; i<arr.length-1 ; i++)
         {
             Node newNode = new Node(arr[i]);
             temp.setNext(newNode);
             newNode.setPrev(temp);

             temp = temp.next;
         }

         //finally

         temp.prev.next = temp;
    }

09-27 14:32