2016-05-18 10 views
0

私はリンクリストをC++で作成しようとしています。 リンクリストを逆順に読み込むメソッドを書いてみたい。 メソッドの引数を変更したくありません。 私の問題は再帰ですが、私はそこにどうすればいいのか分かりません。 私の意見では、スタックは素晴らしい考えです。 マイコード:リンクされたリストを逆の順序で印刷する方法は?

void reverse(List* list) { 
    Node * wsk = list->first; 
    if (list->first == NULL) { 
     return; 
    } else if (wsk->next != NULL) { 
     reverse(list); // reverse(?) 
    } 
    cout << wsk->value << endl; 
} 

答えて

0

は、リンクリストのノードを横断し、逆の順序でそれらを印刷しヘルパー関数を記述します。

void reverse_nodes(Node* node) { 
    if (node != NULL) 
    { 
     reverse_nodes(node->next); 
     cout << node->value << endl; 
    } 
} 

を呼び出し、リストで呼び出された関数から呼び出します。

void reverse(List* list) { 
    reverse_nodes(list->first); 
} 
+0

うーん、私は、そのコードを使用しますがcLionを投げている:終了コード-1073741571(0xC00000FD)で仕上げプロセスを//それは私のリストに問題があることができますか? – Chris23329

+0

@ Chris23329、それが私が考えることができる唯一の理由です。 –

関連する問題