"Die letzten k Knoten in der verknüpften BM8-Liste" JavaScript-Implementierung

Themenbeschreibung

Wenn die Länge der verketteten Liste kleiner als k ist, gib eine verkettete Liste der Länge 0 zurück.

Datenbereich: 0≤n≤10^5, 0≤ai​≤10^9, 0≤k≤10^9

Anforderungen: Raumkomplexität O(n), Zeitkomplexität O(n)

Fortgeschritten: Raumkomplexität O(1), Zeitkomplexität O(n)

Beispiel 1:

Eingang: {1,2,3,4,5},2 Ausgang: {4,5}

Beispiel 2:

Eingang: {2},8 Ausgang: {}

antworten:

Methode eins:

function FindKthToTail( pHead ,  k ) {
    var cur = pHead;
    var length = 0;
    while(cur) {
        length++;
        cur = cur.next;
    }
    if (length <k) return null;
    cur = pHead;
    for (var i =0; i < length-k; i++) {
        cur = cur.next;
    }
    return cur;
}

Methode zwei:

Der schnelle Zeiger bewegt sich schnell um k Schritte.Wenn der schnelle Zeiger leer ist, zeigt der volle Zeiger auf den k-ten Knoten von unten

function FindKthToTail( pHead ,  k ) {
    let fast = pHead, slow = pHead;
    for(var i = 0; i < k; i++) {
        if(fast == null) return null;
        fast = fast.next;
    }
    while(fast){
        fast = fast.next;
        slow = slow.next;
    }
    return slow;
}

Supongo que te gusta

Origin blog.csdn.net/qq_42101569/article/details/126202747
Recomendado
Clasificación