Přeskočit na obsah
TypeScript Ace

7. Otoč spojový seznam

Dostaneš začátek (head) spojového seznamu. Otoč ho a vrať nový začátek.

Třída ListNode je už definovaná, stejně jako na LeetCode:

class ListNode {  val: number;  next: ListNode | null;  constructor(val?: number, next?: ListNode | null);}

Příklady

Vstuphead = [1, 2, 3, 4, 5]
Výstup[5, 4, 3, 2, 1]
Vstuphead = [1, 2]
Výstup[2, 1]
Nápověda

Potřebuješ tři proměnné: prev (na začátku null), cur (na začátku head) a dočasnou next. V každém kroku otoč šipku – cur.next = prev – a posuň se dál.

Ukázat řešení
1function reverseList(head: ListNode | null): ListNode | null {2  let prev: ListNode | null = null;3  let cur = head;4  while (cur !== null) {5    const next = cur.next;6    cur.next = prev;7    prev = cur;8    cur = next;9  }10  return prev;11}12 
reseni.tsTypeScript 6.0.3
Tab odsadí · Esc a Tab opustí editor
Typová kontrola

Kód se zkontroluje automaticky, jakmile se načte TypeScript.

Testy4 testy

Napiš řešení a stiskni Spustit testy.