我試圖扭轉下列鏈表的順序,我這樣做了,但反轉列表似乎沒有打印出來。我哪裏錯了?顛倒鏈表?
//reverse the linked list
#include <iostream>
using namespace std;
struct node{
int number;
node *next;
};
node *A;
void addNode(node *&listpointer, int num){
node *temp;
temp = new node;
temp->number = num;
temp->next = listpointer;
listpointer = temp;
}
void reverseNode(node *&listpointer){
node *temp,*current;
current = listpointer;
temp = new node;
while (true){
if (current == NULL){
temp = NULL;
break;
}
temp->number = current->number;
current = current->next;
temp = temp->next;
}
listpointer = temp;
}
int main(){
A = NULL;
addNode(A,1);
addNode(A,2);
addNode(A,3);
while (true){
if (A == NULL){break;}
cout<< A->number << endl;
A = A->next;
}
cout<< "****" << endl;
reverseNode(A);
while (true){
if (A == NULL){break;}
cout<< A->number << endl;
A = A->next;
}
cout<< "****"<< endl;
return 0;
}
我想這是家庭作業。那麼,你允許使用雙向鏈表和/或遞歸嗎? – 2010-05-22 09:51:46
不是家庭作業,但我需要知道如何做到這一點沿途 – silent 2010-05-22 09:58:12