使用迭代器反转双链接列表

时间:2015-10-19 20:38:34

标签: java iterator reverse doubly-linked-list

我正在尝试创建一个方法来反转双向链表的元素。该类有一个虚拟节点,其中dummy.next等于头部,dummy.prev等于尾部。我有一个迭代器

 public ListIterator<T> listIterator(int i) {
if (i < 0 || i > n) throw new IndexOutOfBoundsException();
return new Iterator(this, i);
}

我的反向代码如下

  public void reverse() {
ListIterator<T> it = listIterator(0);
Node temp = dummy.next;
dummy.next = dummy.prev;
dummy.prev = temp;

Node p = dummy.next;

while(it.hasNext())
{
  temp=p.next;
  p.next=p.prev;
  p.prev=temp;
  p=p.next;
}
}

当给出一个空的DList时,它传递得很好,但是一旦给它一个有元素,它就无限循环。我不确定我做错了什么,所以任何帮助都会很好。

0 个答案:

没有答案