33 lines
536 B
C++
33 lines
536 B
C++
#include "chapter2.hpp"
|
|
#include <stack>
|
|
|
|
/*
|
|
Reverse Linked List
|
|
*/
|
|
|
|
void reverse_linkedlist(DopeLinkedList* ll){
|
|
DopeNode* node = ll->GetHead();
|
|
DopeNode* prev = nullptr;
|
|
std::stack<DopeNode*> s;
|
|
int iter_cnt = 0;
|
|
s.push(node);
|
|
while(node->GetNext() != NULL){
|
|
s.push(node);
|
|
node = node->GetNext();
|
|
iter_cnt++;
|
|
}
|
|
s.push(node);
|
|
|
|
prev = s.top();
|
|
s.pop();
|
|
ll->SetHead(prev);
|
|
while(!s.empty()){
|
|
node = s.top();
|
|
s.pop();
|
|
prev->SetNext(node);
|
|
prev = node;
|
|
}
|
|
node->SetNext(nullptr);
|
|
|
|
}
|