gpt4 book ai didi

java - 我有链表的模板,我试图将它变成java中的循环双向链表

转载 作者:行者123 更新时间:2023-12-01 09:13:51 33 4
gpt4 key购买 nike

我正在尝试将链表转换为循环双向链表,但在使用链表类中的一堆不同方法时遇到了一些麻烦,例如我不知道如何更改writeList() 方法这就是现在的样子

public void writeLinkedList() {
Node p, q;
System.out.println("Writing list:");
for (p = listStart, q = null; p != null; q = p, p = p.getNext());

for (p = listStart; p != q; p = p.getNext())
System.out.println(p.getData());
}

我使用第一个 for 循环将 q 标识为列表中的最后一个节点,我不知道如何进一步处理。我的节点类也发布在下面

public int getData() {
return data;
}

public Node getNext() {
return next;
}

public Node getPrev(){
return prev;
}
//Mutators
public void setData(int x) {
System.out.println("inside setData");
data = x;
}

public void setNext(Node n) {
next = n;
}

public void setPrev(Node p){
prev = p;
}

最佳答案

我建议使用 while 循环来查找最后一个节点。你可以这样做:

Node p = listStart;
while(p.getNext() != null)
{
Node temp = p;
p = p.getNext();
p.setPrev(temp);
}
//now that we are out p will be the last node in the list
//set p's next node to the first node
p.setNext(listStart);
listStart.setPrev(p);

这将使您的列表循环并双向链接。

关于java - 我有链表的模板,我试图将它变成java中的循环双向链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40727013/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com