Java 在双链接列表的末尾插入节点
我试图在双链接列表的末尾插入一个节点,但当我运行add方法时,代码永远不会运行完。代码如下:Java 在双链接列表的末尾插入节点,java,doubly-linked-list,Java,Doubly Linked List,我试图在双链接列表的末尾插入一个节点,但当我运行add方法时,代码永远不会运行完。代码如下: public class DoublyLinkedList<T> { static class Node<T> { T data; Node<T> next; Node<T> previous; Node() { data = null;
public class DoublyLinkedList<T> {
static class Node<T> {
T data;
Node<T> next;
Node<T> previous;
Node() {
data = null;
next = null;
previous = null;
}
Node(T value) {
data = value;
next = null;
previous = null;
}
}
private Node<T> head;
private int size;
public DoublyLinkedList() {
head = null;
}
public DoublyLinkedList(T value) {
head = new Node<T>(value);
size ++;
}
public void add(T value) {
Node<T> append = new Node<T>(value);
append.next = null;
if(head == null) {
append.previous = null;
head = append;
size ++;
return;
}
Node current = head;
while(current.next != null) {
current = current.next;
}
current.next = append;
append.previous = current;
size ++;
}
公共类双链接列表{
静态类节点{
T数据;
节点下一步;
节点前向;
节点(){
数据=空;
next=null;
previous=null;
}
节点(T值){
数据=价值;
next=null;
previous=null;
}
}
专用节点头;
私有整数大小;
公共双链接列表(){
head=null;
}
公共双链接列表(T值){
head=新节点(值);
大小++;
}
公共无效添加(T值){
节点追加=新节点(值);
append.next=null;
if(head==null){
append.previous=null;
头=附加;
大小++;
返回;
}
节点电流=头;
while(current.next!=null){
当前=当前。下一步;
}
current.next=追加;
append.previous=当前;
大小++;
}
我很确定这行写着current.next=append是问题所在,但我不确定如何解决它。我做错了什么?这些行:
append.next=null;
和append.previous=null;
似乎没有必要,因为它们重复了(部分内容)节点
构造函数的功能。节点是否是与其余数据类型相同的当前
变量't finish您可能会陷入while
循环,但我不明白为什么会这样。我尝试运行您的代码。我没有遇到任何问题。一切正常fine@CiaPan我添加这两行只是为了看看它是否能工作,但我最初没有这两行,将current更改为Node并没有什么区别。