Ich studiere Code anderer Leute, und ein Teil des Codes verwirrt mich sehr. Was bedeutet [1]
in der remove(head)[1]
? Was ist auch (head, head.next)[i+1 == n]
? Könnte mir jemand helfen?Was bedeutet [1], wenn wir es am Ende einer Funktion und am Ende eines Tupels setzen?
Im Code ist head
der Kopf einer verknüpften Liste, die von einer anderen Klasse namens ListNode stammt und zwei Funktionen enthält. Einer ist head.val
, der den Wert von head zeigt. Ein anderes ist head.next
, das das nächste Objekt in der verknüpften Liste aufruft. Hier ist n
ein Int. Dieser Code versucht, den N-ten Knoten vom Ende der Liste zu entfernen und seinen Kopf zurückzugeben.
Zum Beispiel
Gegeben verketteten Liste: 1-> 2-> 3-> 4-> 5 ist und n = 2.
Nach dem zweiten Knoten von dem Ende entfernt wird, die verknüpfte Liste wird 1-> 2-> 3-> 5.
Es folgt der Code:
class Solution:
def removeNthFromEnd(self, head, n):
def remove(head):
if not head:
return 0, head
i, head.next = remove(head.next)
return i+1, (head, head.next)[i+1 == n]
return remove(head)[1]
Was macht es, wenn es nicht am Ende einer Funktion steht? Was bedeutet "i + 1 == n"? Was bedeutet "int (True)" oder "int (False)"? Wenn Sie all diese Fragen beantworten können, haben Sie Ihre Frage gelöst. –
@AlexanderHuszagh Ich habe den Beitrag bearbeitet. Hoffe dieses Mal ist es klar. – Root
Die Frage ist klar. Aber die Antwort ist auch klar. Und ich frage dich, damit du darüber nachdenken kannst, was der Code macht: Was macht '[]' zum Beispiel, wenn er auf einer Liste aufgerufen wird? Was macht "int (True)"? Wenn Sie das wissen, können Sie den Code verstehen. –