您的位置:首页 > 其它

算法-单向链表逆序

2012-09-19 13:14 218 查看
我们假设单向链表的节点如下:


template<typename T>


class list_node




{


public:


list_node* next;


T data;


};

void reverse(node*& head)




{


if ( (head==
0)|| (head->next==0)
)return;// 边界检测


node* pNext=0;


node* pPrev=
head;// 保存链表头节点


node* pCur=
head->next;// 获取当前节点


while (pCur!=
0)




{


pNext= pCur->next;//
将下一个节点保存下来


pCur->next=
pPrev;// 将当前节点的下一节点置为前节点


pPrev= pCur;//
将当前节点保存为前一节点


pCur= pNext;//
将当前节点置为下一节点


}


}

这是一般的方法,总之就是用了几个临时变量,然后遍历整个链表,将当前节点的下一节点置为前节点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: