// 实现顺序表的就地逆转 不占用额外的存储空间 我的思想是全部入栈 然后逐个连接在链表后 typedef struct Stack{ TElemType data; struct Stack *next; }Stack,*LinkStack; void reverse(LinkList &L){ Stack s; p=L->next; while(p){ Push(S,p); } while(s.getTop!=null){ Pop(S,*p); q=L->next; p->next=null; q->next=p;//弹出栈顶元素 q=p; //q向后走一个 } } //教材答案 思路是从首元结点开始头插法 逐个插入在头结点后,这样原来的第一个结点就成了最后一个。 void inverse(LinkList &L){ p=L->next; L->next=null; while(p){ q=p->next;//q指向p的后继 p->next=L->next; L->next=p;//p结点头插法插入到头结点之后 p=q; } }