设置前、中、后,三个指针一起蠕动向前:for:{中next指向后;后=中;中=前;前=前next }(这里只需注意按照后、中、前的顺序移动指针即可,考点就在这里。)到前指针==rear时做最后一次循环,再令rear->next=中,head=rear。图画得不好,把head当三指针之一给用了,有空修改成保留head和rear指针的图,最后rear=head,head=前指针,即可完美收工。
实际上链表#include<list>之后,可以list<int> a;a.reserve();即可完成反转,reserve是list类自带的成员函数。
希望本文对您有所帮助,欢迎讨论。