12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- package main
- func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
-
- if l1 == nil && l2 == nil {
- return nil
- }
- if l1 == nil && l2 != nil {
- return l2
- }
- if l1 != nil && l2 == nil {
- return l1
- }
- var curr *ListNode
-
- if l1.Val < l2.Val {
- curr = l1
- l1 = l1.Next
- } else {
- curr = l2
- l2 = l2.Next
- }
- head := curr
-
- for l1 != nil && l2 != nil {
- if l1.Val < l2.Val {
- curr.Next = l1
- curr = l1
- l1 = l1.Next
- } else {
- curr.Next = l2
- curr = l2
- l2 = l2.Next
- }
- }
-
- if l1 != nil {
- curr.Next = l1
- } else {
- curr.Next = l2
- }
- return head
- }
|