我想从排序的链表{0 1 2 2 3 3 4 5}中删除重复项。
`
public Node removeDuplicates(Node header)
{
Node tempHeader = null;
if(header != null)
tempHeader = header.next;
else return header;
Node prev = header;
if((tempHeader == null)) return header ;
while(tempHeader != null)
{
if(tempHeader.data != prev.data)
{
prev.setNext(tempHeader);
}
tempHeader = tempHeader.next;
}
prev = header;
printList(prev);
return tempHeader;
}
`
prev.setNext(tempHeader)在while循环内无法正常工作。理想情况下,当prev = 2且tempHeader =
3时,prev.next应该是data = 3的节点。
Printlist函数仅使用标题指针并打印列表。
节点定义如下。
public class Node
{
int data;
Node next;
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}