力扣HOT100 - 148. 排序链表

解题思路:

归并排序

class Solution {
    public ListNode sortList(ListNode head) {
        if (head == null || head.next == null) return head;
        ListNode fast = head.next, slow = head;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
        }
        ListNode temp = slow.next;
        slow.next = null;
        ListNode left = sortList(head);
        ListNode right = sortList(temp);
        ListNode dum = new ListNode(0);
        ListNode cur = dum;
        while (left != null && right != null) {
            if (left.val < right.val) {
                cur.next = left;
                left = left.next;
            } else {
                cur.next = right;
                right = right.next;
            }
            cur = cur.next;
        }
        cur.next = left != null ? left : right;
        return dum.next;
    }
}

相关推荐

  1. 100141.环形

    2024-04-22 09:42:05       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-22 09:42:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-22 09:42:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-22 09:42:05       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-22 09:42:05       20 阅读

热门阅读

  1. C 练习实例13

    2024-04-22 09:42:05       12 阅读
  2. TensorFlow的基本概念及使用场景

    2024-04-22 09:42:05       16 阅读
  3. Oracle

    2024-04-22 09:42:05       14 阅读
  4. 【大模型系列】提示学习

    2024-04-22 09:42:05       14 阅读