golang力扣leetcode 23.合并K个升序链表

简介: golang力扣leetcode 23.合并K个升序链表

23.合并K个升序链表

23.合并K个升序链表

题解

没啥含金量,就更归并排序一样,考验基本功吧

代码

type ListNode struct {
  Val  int
  Next *ListNode
}
func mergeKLists(lists []*ListNode) *ListNode {
  dummy := &ListNode{}
  for _, v := range lists {
    dummy.Next = merge(dummy.Next, v)
  }
  return dummy.Next
}
func merge(l1, l2 *ListNode) *ListNode {
  dummy := &ListNode{}
  cur := dummy
  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
  }
  for l1 != nil {
    cur.Next = l1
    l1 = l1.Next
    cur = cur.Next
  }
  for l2 != nil {
    cur.Next = l2
    l2 = l2.Next
    cur = cur.Next
  }
  return dummy.Next
}
目录
相关文章
【移除链表元素】LeetCode第203题讲解
【移除链表元素】LeetCode第203题讲解
|
2月前
|
存储
【合并两个有序数组】LeetCode第88题讲解
【合并两个有序数组】LeetCode第88题讲解
|
22天前
【力扣】21. 合并两个有序链表
【力扣】21. 合并两个有序链表
|
2月前
|
存储 JavaScript
leetcode82. 删除排序链表中的重复元素 II
leetcode82. 删除排序链表中的重复元素 II
22 0
|
2月前
leetcode83. 删除排序链表中的重复元素
leetcode83. 删除排序链表中的重复元素
10 0
|
2月前
leetcode2807.在链表中插入最大公约数
leetcode2807.在链表中插入最大公约数
16 0
|
2月前
leetcode2487.从链表中移除节点
leetcode2487.从链表中移除节点
20 1
|
2月前
|
存储 算法
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
LeetCode刷题--- 61. 旋转链表(快慢指针+闭合为环)
|
2月前
|
算法
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
LeetCode刷题---19. 删除链表的倒数第 N 个结点(双指针-快慢指针)
|
2月前
|
存储
LeetCode刷题---817. 链表组件(哈希表)
LeetCode刷题---817. 链表组件(哈希表)

热门文章

最新文章