image.png

    1. package main
    2. import "fmt"
    3. type ListNode struct {
    4. Val int
    5. Next *ListNode
    6. }
    7. //https://leetcode-cn.com/problems/merge-two-sorted-lists/
    8. func mergeTwoLists(l1 *ListNode, l2 *ListNode) *ListNode {
    9. dummy := &ListNode{}
    10. cur := dummy
    11. for {
    12. if l1==nil&&l2==nil {
    13. break
    14. }
    15. if l1==nil {
    16. cur.Next = l2
    17. break
    18. }
    19. if l2==nil {
    20. cur.Next = l1
    21. break
    22. }
    23. if l1.Val<l2.Val {
    24. cur.Next = l1
    25. l1 = l1.Next
    26. cur = cur.Next
    27. }else {
    28. cur.Next = l2
    29. l2 = l2.Next
    30. cur = cur.Next
    31. }
    32. }
    33. return dummy.Next
    34. }
    35. func main() {
    36. a1 := &ListNode{Val: 1}
    37. b1 := &ListNode{Val: 2}
    38. c1 := &ListNode{Val: 4}
    39. a2 := &ListNode{Val: 1}
    40. b2 := &ListNode{Val: 3}
    41. c2 := &ListNode{Val: 4}
    42. a1.Next=b1
    43. b1.Next = c1
    44. a2.Next = b2
    45. b2.Next = c2
    46. h := mergeTwoLists(a1,a2)
    47. for h!=nil{
    48. fmt.Println(h.Val)
    49. h=h.Next
    50. }
    51. }

    image.png