结点类型
class list{
public:
list(int num = 0){
this->m_num = num;
this->m_next = NULL;
}
public:
int m_num;
list*m_next;
};
实现:(不含头结点)代码模板化 很固定
方法1:
vodi reverse(list*node){
list*ptr = NULL;
list*next = NULL;
list*head = node;
while(head!=NULL){
next = head->m_next;
head->m_next = ptr;
ptr = head;
head = next;
}
return ptr;
}
方法2 :
新建一个辅助节点在第一个节点之前,然后从第一个节点开始不断头插到辅助节点后面。
void reverse(list*node){
list*help;
list*head = node;
list*next = NULL;
while(head!=NULL){
next = head->m_next;
head->m_next = help->m_next;
help->m_next = head;
head = next;
}
next = help->m_next;
delete help;
return next;