【发布时间】:2020-04-14 10:53:11
【问题描述】:
下面的代码 sn-p 是从排序的链表中删除重复的。请建议我进行更改以更正代码,因为节点值 3 3 3 4 5 5 的输出错误。预期输出是 3 4 5 而我得到的是 3 4 5 5 。
static SinglyLinkedListNode removeDuplicates(SinglyLinkedListNode head) {
SinglyLinkedListNode temp,temp1;
if((head==null)||(head.next==null))
return head;
for(temp=head;temp.next!=null;temp=temp.next)
{
for(temp1=temp.next;temp1.next!=null;temp1=temp1.next)
{
if(temp.data==temp1.data)
{
temp.next=temp.next.next;
}
}
}
return head;
}
【问题讨论】:
-
您的循环结束条件减一。您正在检查
temp.next != null和temp1.next != null,这意味着temp和temp1都不会是您列表中的最后一个元素,这就是为什么您的最后一个5没有被删除。跨度>
标签: java data-structures linked-list