C++沉思錄__連結串列的反轉
阿新 • • 發佈:2018-11-22
/* 連結串列反轉 */ typedef struct _Node { int value; struct _Node *next; } Node; typedef struct _linkList { Node *next; } LinkList; LinkList* linkListReverse(LinkList *list) { if(!list) return nullptr; Node * cur = list->next; Node *next = nullptr; Node *pre = nullptr; while(cur->next) { next = cur->next; cur->next = pre; pre = cur; cur = next; } cur->next = pre; list->next =cur; return list; }
測試程式
int main(int argc, char const *argv[]) { cout<<"測試程式"<<endl; cout<<"************"<<endl; LinkList *list; Node n1; Node n2; Node n3; Node n4; list->next = &n1; n1.next = &n2; n1.value =100; n2.next =&n3; n2.value =101; n3.next =&n4; n3.value=102; n4.value =104; n4.next = nullptr; LinkList *l = linkListReverse(list); Node *q = l->next; while(q) { cout<<q->value<<endl; q =q->next; } system("pause"); return 0; }