本题要求你处理单链表、双链表和循环链表的合并与分割操作。你需要实现以下功能:
将两个单链表合并成一个有序的单链表。
将一个双链表按指定值分割成两部分,使得前半部分的所有3节点值小于指定值,后半部分的所有节点值大于等于指定值。
合并两个循环链表为一个新的循环链表。
输入包含多组操作,每组操作由一个操作类型和相应的数据组成,具体如下:
操作 1:合并两个单链表
第一行输入 1,表示此操作类型。
第二行输入第一个单链表的节点数量 (n_1),接着输入 (n_1) 个整数,表示第一个单链表的节点值。
第三行输入第二个单链表的节点数量 (n_2),接着输入 (n_2) 个整数,表示第二个单链表的节点值。
操作 2:分割双链表
第一行输入 2,表示此操作类型。
第二行输入双链表的节点数量 n,接着输入 n 个整数,表示双链表的节点值。
第三行输入一个整数 x,表示分割的指定值。
操作 3:合并两个循环链表
第一行输入 3,表示此操作类型。
第二行输入第一个循环链表的节点数量 (m_1),接着输入 (m_1) 个整数,表示第一个循环链表的节点值。
第三行输入第二个循环链表的节点数量 (m_2),接着输入 (m_2) 个整数,表示第二个循环链表的节点值。
根据不同的操作类型,输出相应的结果:
操作 1:合并两个单链表
输出合并后有序单链表的所有节点值,以空格分隔。
操作 2:分割双链表
输出分割后双链表的所有节点值,以空格分隔。
操作 3:合并两个循环链表
输出合并后循环链表的所有节点值,以空格分隔,从合并后链表的头节点开始输出。
1 3 1 3 5 2 2 4 2 4 3 1 4 2 3 3 2 7 8 3 9 10 11
1 2 3 4 5 1 2 3 4 7 8 9 10 11
操作组数不超过 10 组。对于单链表和双链表,节点数量 (n, n_1, n_2) 满足 (1 ≤ n, n_1, n_2 ≤ 100)。对于循环链表,节点数量 (m_1, m_2) 满足 (1 ≤ m_1, m_2 ≤ 100)。所有节点值的范围是 (-1000 ≤) 节点值 (≤ 1000)。分割指定值 x 的范围是 (-1000 ≤ x ≤ 1000)。