1567. [算法课分治] 链表排序

请将链表按升序排列并返回排序后的链表。测试用例的链表不为空。 其中 ListNode 的数据结构

struct ListNode { int val; ListNode *next; ListNode() : val(0), next(nullptr) {} ListNode(int x) : val(x), next(nullptr) {} ListNode(int x, ListNode *next) : val(x), next(next) {} };

输入

输入一行数字表示链表数据,数字与数字之间空格隔开。

EOF 作为结束输入(请参考 SCNUOJ 1001 题题解了解如何处理输入)。

  • 链表中节点的数目在范围 [0, 5\times10^4]
  • -10000 \leq \text{Node.val} \leq 10000

输出

输出一行数字代表排序后的链表,数字与数字之间空格隔开

样例

标准输入 复制文本
4 2 1 3
标准输出 复制文本
1 2 3 4
标准输入 复制文本
-1 5 3 4 0
标准输出 复制文本
-1 0 3 4 5
登录以提交代码。
单点时限 1 秒
内存限制 128 MB
提交 2270
通过 1163