0

私はそれが分のコードであることを知っています。リンクリストの反転が機能しない理由がわかりません。以下のコードで私の逆の方法を修正するのを手伝ってくれる人がいますか?

//Reverse a single linked list
public Node reverse()
{
    return reverse(root);
}
private Node reverse(Node node)
{
        Node previous = null;  
        Node current = node;  
        Node forward;  

        while (current != null) 
    {  
            forward = current.next;  
            current.next = previous;  
            previous = current;  
            current = forward;  
        }  
    return previous;  
}

これに関する入力は役に立ちます

ありがとう !!!

4

3 に答える 3

0

宿題を想定して...

簡単なテストを書く:0項目のリスト、1項目のリスト、2項目のリスト、10項目のリスト。それぞれが機能することを確認するよりも、エラーを絞り込み、単体テストの記述方法を学びます。

于 2012-05-10T01:21:36.607 に答える
0

rootの代わりにreverse()の戻り値を使用して反復を行っていますか?

于 2012-05-10T02:22:12.307 に答える
0

私はそれがすべきだとかなり確信しています

return root = reverse(root);

(逆のロジックは正しいですが、rootがまだリストの古いルートを指している場合は、1要素のリンクリストになります。)

于 2012-05-10T02:41:35.837 に答える