所以我有一个列表0.1,3.0,4.5,-1,3.0,-10.0,3.0,3.0 我应该得到一个列表0.1,3.0,4.5, - 1.0,-10.0下面的代码从单一链表中删除重复的顺序
public void removeDuplicates()
{
if (head == null)
return;
Node iter = head;
while (iter != null)
{
Node currNode = iter;
while (currNode != null && currNode.next != null)
{
if (iter.value == currNode.next.value)
{
currNode.next = currNode.next.next;
nItem--;
}
currNode = currNode.next;
}
iter = iter.next;
}
}
我甚至有这一段时间,直到我固定的东西,跑了之后,然后意识到出事了这里。
因为我现在得到0.1,3.0,4.5,-1.0,-10.0,3.0。为什么最后3.0标签一起?我首先想到它可能已经被缠绕/缠绕,但意识到我没有做任何这样的事情。关于逻辑流程的建议?
'&& currNode.next!= null'在while条件下....删除。这是忽略了最后一个元素。 – st0le
,如果(iter.value == currNode.next.value) 这并不意味着它不能处理currNode.next.value为空并且我必须写出它的情况下,它给了我一个空指针例外 分别? – Xavier
请参阅'shg'答案来解决这个问题。 – st0le