u
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user