@Ishishow betreibt eine kostenlose englische Word-Site E-tan.
Ich möchte jeden Tag an Letcode arbeiten, um meine Fähigkeiten als Programmierer zu verbessern und meine eigene Art der Lösung zu finden.
leetcode.com Dies ist die Praxis des Codierens von Interviews für Softwareentwickler. Insgesamt wurden mehr als 1.500 Codierungsfragen gestellt, und es scheint, dass in tatsächlichen Interviews häufig dieselben Fragen gestellt werden.
Einführung in Go Sprache + Algorithmus Ich werde es mit Golang und Python lösen, um mein Gehirn zu stärken. (Python ist schwach, aber erfahren)
--Probleminhalt (japanische Übersetzung)
Fügt zwei sortierte Linklisten zusammen und gibt sie als neue ** sortierte ** Liste zurück. Die neue Liste muss erstellt werden, indem die Knoten der ersten beiden Listen zusammengefügt werden.
Example 1:
Input: l1 = [1,2,4], l2 = [1,3,4]
Output: [1,1,2,3,4,4]
Example 2:
Input: l1 = [], l2 = []
Output: []
Example 3:
Input: l1 = [], l2 = [0]
Output: [0]
--Antwortcode
class Solution(object):
def mergeTwoLists(self, l1, l2):
cur = ListNode(0)
res = cur
while l1 and l2:
if l1.val < l2.val:
cur.next = l1
l1 = l1.next
else:
cur.next = l2
l2 = l2.next
cur = cur.next
cur.next = l1 or l2
return res.next
func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
cur := &ListNode{}
res := cur
for l1 != nil && l2 != nil {
if l1.Val < l2.Val {
cur.Next = l1
l1 = l1.Next
} else {
cur.Next = l2
l2 = l2.Next
}
cur = cur.Next
}
if l1 != nil {
cur.Next = l1
} else if l2 != nil {
cur.Next = l2
}
return res.Next
}
Recommended Posts