Ich versuche dieses Problem zu lösen: https://leetcode.com/problems/reverse-linked-list/description/?envtype=study-plan&id=level-1
Eingabe: head = [1,2,3,4,5]
Das ist mein Code:
func reverseList(head *ListNode) *ListNode { var prev *ListNode prev = nil for head.Next != nil { head, head.Next, prev = head.Next, prev, head } if head.Next == nil { head.Next = prev } return head }
Nach der Ausführung meldete das Programm einen Fehler: Panik: Laufzeitfehler: Ungültige Speicheradresse oder Null-Zeiger-Dereferenzierung. Bitte erklären Sie mir, warum dieser Fehler auftritt
Eingabe: Kopf = [1,2,3,4,5]. Ich möchte viermal eine Schleife durchlaufen, bis head.next == nil ist. Doch etwas Unerwartetes geschah.
Wenn head gleich Null ist -> wird head.next einen Fehler wie den von Ihnen ausgegebenen ausgeben
func reverselist(head *listnode) *listnode { var prev *listnode prev = nil for head != nil && head.next != nil { head, head.next, prev = head.next, prev, head } if head != nil && head.next == nil { head.next = prev } return head }
Noch einfacher ist:
func reverseList(head *ListNode) *ListNode { var prev *ListNode prev = nil for head != nil { head, head.Next, prev = head.Next, prev, head } if head == nil { head = prev } return head }
Das obige ist der detaillierte Inhalt vonLaufzeitfehler: Ungültige Speicheradresse oder Nullzeiger über Zyklus dereferenziert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!