您的位置:首页 > 健康 > 养生 > 免费高清网站推荐_做购物网站需要什么_百度投放广告怎么收费_企业网站管理系统

免费高清网站推荐_做购物网站需要什么_百度投放广告怎么收费_企业网站管理系统

2025/4/8 19:12:26 来源:https://blog.csdn.net/qq_45801780/article/details/146284975  浏览:    关键词:免费高清网站推荐_做购物网站需要什么_百度投放广告怎么收费_企业网站管理系统
免费高清网站推荐_做购物网站需要什么_百度投放广告怎么收费_企业网站管理系统

在这里插入图片描述

解题思路:

  1. 找到链表中点: 使用快慢指针法,快指针每次移动两步,慢指针每次移动一步。当快指针到达末尾时,慢指针指向中点。
  2. 递归分割与排序: 将链表从中点处分割为左右两个子链表,分别对这两个子链表递归排序。
  3. 合并有序子链表: 将两个已排序的子链表合并成一个有序链表。

Java代码:

class Solution {public ListNode sortList(ListNode head) {if (head == null || head.next == null) {return head;}ListNode slow = head, fast = head;while (fast.next != null && fast.next.next != null) {slow = slow.next;fast = fast.next.next;}ListNode mid = slow.next; slow.next = null;ListNode left = sortList(head);ListNode right = sortList(mid);return merge(left, right);}private ListNode merge(ListNode l1, ListNode l2) {ListNode dummy = new ListNode(-1);ListNode current = dummy;while (l1 != null && l2 != null) {if (l1.val <= l2.val) {current.next = l1;l1 = l1.next;} else {current.next = l2;l2 = l2.next;}current = current.next;}current.next = (l1 != null) ? l1 : l2;return dummy.next;}
}

复杂度分析:

  • 时间复杂度: 归并排序的时间复杂度为 ​O(nlogn)。
  • 空间复杂度: O(log n)​。(递归栈深度)

在这里插入图片描述

解题思路:

  1. 初始化优先队列: 将所有链表的头节点加入堆中,堆顶元素为当前最小值。
  2. 构建结果链表: 每次从堆顶取出最小节点,添加到结果链表中,并将其下一个节点加入堆中(若存在)。
  3. 处理空链表: 跳过输入数组中的空链表,避免无效操作。

Java代码:

class Solution {public ListNode mergeKLists(ListNode[] lists) {if (lists == null || lists.length == 0) return null;PriorityQueue<ListNode> minHeap = new PriorityQueue<>((a, b) -> a.val - b.val);for (ListNode node : lists) {if (node != null) {minHeap.offer(node);}}ListNode dummy = new ListNode(-1);ListNode current = dummy;while (!minHeap.isEmpty()) {ListNode smallest = minHeap.poll();current.next = smallest;current = current.next;if (smallest.next != null) {minHeap.offer(smallest.next);}}return dummy.next;}
}

复杂度分析:

  • 时间复杂度: O(nklogk),其中 n 是总节点数,k 是链表数量。
  • 空间复杂度: O(k),用于存储堆中的节点。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com