#P3862. 链表合并
链表合并
链表合并
题目描述
给定一个链表 head。
如果链表中有一段连续相邻且值相同的节点,那么将这一整段节点一次性合并成一个新节点,新节点的值等于这一段所有节点值的和。
本题规定:
- 每一段连续相同值只合并一次;
- 如果合并完成后,相邻节点的值再次相同,也不再继续合并。
请输出完成上述操作后的链表。
输入格式
第一行输入一个整数 n,表示链表长度。
第二行输入 n 个整数,表示链表节点值。
输出格式
输出两行:
第一行输出一个整数 m,表示合并后链表长度。
第二行输出 m 个整数,表示合并后链表的节点值。
数据范围
1 <= n <= 10^5
-10^9 <= val <= 10^9
样例 1
输入
3
1 2 3
输出
3
1 2 3
样例 2
输入
5
2 2 2 3 3
输出
2
6 6
说明
原链表中的连续段分别为 [2,2,2] 和 [3,3],它们分别合并成值为 6 和 6 的两个节点。合并后虽然相邻值相同,但不再继续合并。