0
下記のconsole.log
の3番目の反復で、希望する出力、つまり逆リンクリストを取得しています。Javascriptの反復を使用したリバースリンクリスト
しかし、私はreturn previous
を持っていますが、それでも1番目の反復から値を返します。
return previous
の代わりにconsole.log(previous)
でも、望ましい出力が得られます。
しかし、今問題は最終的にどのように表示するのですか?
誰かが説明してください、何が間違っていますか?それはreturn previous
に所望の出力を与えていた
reverse(){
var current= this.head,previous=null;
while(current)
{
var next = current.next;
current.next = previous;
previous = current;
current = next;
console.log(previous); //I am getting my answer at the third iteration
}
return previous; //
}
class LinkedList {
constructor() {
this.head = null;
this.length = 0;
}
add(value) {
var node = new Node(value);
if (this.head == null) {
this.head = node;
this.length++;
} else {
var current = this.head;
while (current.next) {
current = current.next;
}
current.next = node;
this.length++;
}
}
reverse() {
var current = this.head,
previous = null;
while (current) {
var next = current.next;
current.next = previous;
previous = current;
current = next;
console.log(previous);
}
return previous;
}
}
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
var ll = new LinkedList();
ll.add(3);
ll.add(2);
ll.add(7);
ll.reverse();
console.log(ll.head);
あなたが持っている正確な質問はタイトルからapperentされていない他の側 – Bergi
に 'this.head'を設定することはありません。多分あなたはそれを変えるべきです。 – realbart
編集をロールバックしました。解決策を見つけたときに質問を編集する代わりに[回答を投稿する](https://stackoverflow.com/help/self-answer)をクリックしてください。 – Bergi