我正在尝试拆分我的双向链表。但是我在sublist.head = mid.next上得到了nullpointer异常。这是否意味着sublist.head指向null?我怎么解决这个?
public void splitMid(DoublyLinkedList<T> sublist)
{
Node<T> current;
Node<T> mid;
int i;
if (head == null)
{
sublist.head = null;
sublist.rear = null;
sublist.count = 0;
}
else
if (head.next == null)
{
sublist.head = null;
sublist.rear = null;
sublist.count = 0;
}
else
{
mid = head;
current = head.next;
i = 1;
if (current != null)
current = current.next;
while (current != null)
{
mid = mid.next;
current = current.next;
i++;
if (current != null)
current = current.next;
}
sublist.head = mid.next;
sublist.rear = rear;
rear = mid;
rear.next = null;
sublist.count = count - i;
count = i;
}
}
答案 0 :(得分:2)
如果声明:
sublist.head = mid.next;
(孤立地)投掷NPE,意味着:
sublist
是null
,或者mid
是null
,或者null
。(您可以通过调试器和条件断点,或通过添加一些临时跟踪打印或断言来确定哪个。)