如何解决无法在索引处添加节点是双向链表中的列表为空
我创建了一个双向链表,用 Java 中的节点填充。我正在尝试制作一种在某个索引处添加节点的方法。问题是,如果我尝试添加一个节点并且没有其他节点,我会得到 NullPointerException
。所以我会写 list.add(0,0);
例如,我会得到 NullPointerException
(第一个数字是索引,第二个是值)。但是,如果我首先使用我的方法,只是放入一个节点,然后尝试 list.add(0,0);
或 list.add(1,0);
它工作。我认为问题在于如何遍历节点。目前的代码如下所示:
void add(int index,T t)
{
ListNode<T> node = header;
ListNode<T> newNode = new ListNode<T>(t);
if(index < 0 || index > size)
{
throw new indexoutofboundsexception("Index not allowed");
}
int counter = 0;
while(node.next != null && counter < index)
{
node = node.next;
counter++;
}
if(counter == 0)
{
header = newNode;
newNode.next = node;
}
else
{
node = node.prevIoUs;
ListNode<T> temp = node.next;
node.next = newNode;
newNode.next = temp;
}
newNode.prevIoUs = node;
newNode.next.prevIoUs = newNode;
size++;
}
我相信这就是问题所在:
while(node.next != null && counter < index)
你知道如何去做吗?我想不出别的办法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。