把单向链表中元素逆置(不允许申请新的结点空间)
发布网友
发布时间:2022-05-15 13:54
我来回答
共1个回答
热心网友
时间:2023-08-01 07:54
设first指针指向单链表的第一个结点,试设计一个算法,通过遍历一趟链表,将链表中
//所有结点的链接方向逆转,并使first指针指向逆转后的第一个结点处(即原来的最后一个结点处),
//若原来链表空,则返回false.(说明:first指针是类SingleList的成员变量,是Node<T>为类的一个指针,
Node类的定义为:
class
Node
{
T
data;
Node<T>
*link;
friend
class
SingleList<T>
};
//函数原型为:
template
<class
T>
bool
SingleList<T>::Reverse(
);
template
<class
T>
bool
SingleList<T>::Reverse()
{
if(!first)return
false;
Node<T>
*p=first,*q;
first=NULL;
while(p){
q=p;
p->link=first;
first=p;
p=q;
}
return
true;
}