単一のリンクされたリストをトラバースする方法を考えようとしています。
これは私がやったことです:
#include <iostream>
typedef struct node {
int data; // will store information
node *next; // the reference to the next node
};
int printList(node *traverse) {
if (traverse->next == NULL) {
return -1;
}
traverse=traverse->next;
printList(traverse);
cout << traverse->data << endl;
return 0;
}
int main() {
node *head = NULL;
for (int i = 0; i < 10; i++) {
node *newEntry = new node;
newEntry->data = i;
newEntry->next = head;
head = newEntry;
}
printList(head);
return 0;
}
関数の最後の桁(9)を出力する方法が思いつきませんprintList()
。どうすればこれを達成できますか?私の 2 番目の質問は、再帰関数ではなく while ループで同じものをトラバースするにはどうすればよいかということです。
以前に答えようとした人もいるように、私はこれを 9 から 0 にトラバースするつもりはありません。これは 0 から 9 にトラバースする必要があります。http://codepad.org/ynEdGc9Sから出力を確認できます