Files
2026-06-21 13:11:31 +10:00

64 lines
950 B
Go

package top100liked
import (
"fmt"
"testing"
)
// https://leetcode.cn/problems/merge-two-sorted-lists/description/?envType=study-plan-v2&envId=top-100-liked
type ListNode struct {
Val int
Next *ListNode
}
func mergeTwoLists(list1 *ListNode, list2 *ListNode) *ListNode {
p1, p2 := list1, list2
p := &ListNode{}
res := p
for p1 != nil && p2 != nil {
if p1.Val <= p2.Val {
p.Next = p1
p = p.Next
p1 = p1.Next
} else {
p.Next = p2
p = p.Next
p2 = p2.Next
}
}
for p1 != nil {
p.Next = p1
p = p.Next
p1 = p1.Next
}
for p2 != nil {
p.Next = p2
p = p.Next
p2 = p2.Next
}
return res.Next
}
func Test(t *testing.T) {
input1 := &ListNode{
Val: -9,
Next: &ListNode{
Val: 3,
Next: nil,
},
}
input2 := &ListNode{
Val: 5,
Next: &ListNode{
Val: 7,
Next: nil,
},
}
output := mergeTwoLists(input1, input2)
for output != nil {
fmt.Println(output.Val)
output = output.Next
}
}