我需要构建一个双重LinkedList,它为其中的每个字符提供一个String和build节点。
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的双重作用吗?
感谢。
答案 0 :(得分:1)
你是如何定义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;
}
您需要添加函数来设置next和prev Nodes。现在在doublyLinkedlist类的构造函数中,您基本上分割输入字符串并为每个字符创建一个Node。另外,相应地设置next和prev。这有帮助吗?如果需要,我可以提供更详细的代码,但我会敦促你尝试。
好的,所以你的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;
}