方法一:
思路:
- 先定义两个指针phead,ptail,都指向链表的头结点
- 当pfront向后移动一个,ptail向后移动len个位置,也就是对称点的位置;pfront向后移动两个位置,ptail向后移动len-1个位置
- 每移动一次,两个对称点交换数据,直到移动到len/2的位置,证明所有对称点数据交换完成,完成了单链表的逆置
代码:
void Reverse(Plist pl)
{
int len =getLength(pl);
Node* pfront=pl;
Node* ptail=pl;
for(int i=0;i<len/2;i++)//交换的次数
{
pfront=pl;//回到头结点
for(int j=0;j<i+1;j++)
{
pfront=pfront->next;
}
ptail->pl;//回到头结点
for(int k=0;k<len-i;k++)
{
ptail=ptail->next;
}
ElemType tmp=pf