【数据结构梳理06】链表的转置
将整个链表全转置的算法:
template<typename T>
class Chain{ //链表的类定义
public:
//公共成员函数
void Reverse();
private:
class ChainNode{ //链表结点定义,嵌套类
public:
ChainNode* link;
T data;
}
ChainNode* first;
}
void Chain<T>::Reverse(){
ChainNode<T>* cur=first;
ChainNode<T>* pr=nullptr;
while(cur){
ChainNode<T>* r=pr;
pr=cur;
cur=cur->link;
pr->link=r;
}
first=pr;
}
图解:


性能分析:
需要遍历整个链表一遍,时间复杂度为O(n)。

浙公网安备 33010602011771号