Реверсирование связанного списка с использованием JavaScript, функция не работает - PullRequest
0 голосов
/ 03 марта 2020

Я сделал функцию Javascript, чтобы перевернуть связанный список. Но код, кажется, производит бесконечное l oop. Пожалуйста, помогите мне разобраться с ошибкой.

reverse()
     {
        var current=this.head;
        var prevNext=current.next;
        this.tail.next=null;
        this.tail=current;
        while(current.next!==null)
        {
            var temp=prevNext;
          if(temp.next!==null)
            prevNext=temp.next;

            temp.next=current;
            current=temp;
        }
        this.head=current;
    }

1 Ответ

1 голос
/ 03 марта 2020

Вы go в бесконечном l oop, потому что внутри l oop вы присваиваете temp.next, затем присваиваете его току, поэтому current.next всегда не null.

var current = this.head;
var previous = null;
var next = null;
while(current !== null)
{
  next = current.next;
  current.next = previous;
  previous = current;
  current = next;  
}
this.head = previous;
...