题目描述

给定一个单链表 $L$ 和一个值 $x$,将 $L$ 分成两个单链表 $L_1$ 和 $L_2$,使得 $L_1$ 中的所有结点的值小于等于 $x$,而 $L_2$ 中的所有结点的值大于 $x$。

输入格式

第一行包含原始链表中结点的个数 $n$。

第二行包含 $n$ 个整数,表示链表中的各结点的值。

第三行包含一个整数 $x$。

输出格式

输出两个链表 $L_1$ 和 $L_2$。对于每个链表,首先输出链表的长度,然后输出链表中的所有整数,每个整数占一行。

数据范围

$1 \le n \le 100000$,$-10^9 \le L_i \le 10^9$,$-10^9 \le x \le 10^9$

输入样例:

10 9 8 7 6 5 4 3 2 1 0 3

输出样例:

4 2 1 0 6 5 4 3 9 8 7

算法1

(暴力枚举) $O(n)$

C++ 代码

算法2

(暴力枚举) $O(n)$

blablabla

时间复杂度

参考文献

python3 代码

C++ 代码

java 代码

算法3

(暴力枚举) $O(n)$

blablabla

时间复杂度

参考文献

C++ 代码

#include stdioh#include stdlibhtypedef int ElemType;typedef struct ListNode ElemType data; struct ListNode next; ListNode LinkList;LinkList createList LinkList head = LinkList mallocsizeofL

原文地址: https://www.cveoy.top/t/topic/bkhj 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录