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;
}