更改链接列表

nik*_*hil 3 c++

您将获得一个单链接列表a->b->c->d->1->2->3->4->e->f->g->h->5->6->7->8.你必须改变这个列表看起来像 a->1->b->2->c->3->d->4->e->5->f->6->g->7->h->8.

我的方法使用额外的列表,我们从列表中删除数字并单独存储它们.然后将列表合并在一起.有人可以建议更好的技术吗?

小智 8

我会有两个迭代器.让一个(迭代器A)遍历列表,当你点击一个数字时停止,让另一个(迭代器B)停留在列表的开头.当你点击一个数字时,在迭代器B的节点后面的迭代器A处插入节点,然后向上移动迭代器B. 通过这种方式,您无需单独创建列表.

编辑:将其插入B后删除迭代器A上的项目(感谢Tudor捕获).

  • 您可以简单地交换指针而不是插入和删除. (2认同)