乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT (Basic Level) Practice 1105 链表合并
问题分析
- 题设给定两个链表头, 总的节点数目, 要求将两个链表按指定方式合并。
- 指定合并方式为: 每两个长链表元素后要插入一个短链表元素, 直到短链表元素插入完毕则得到合并后的链表。
- 由于该题是通过输入校验, 所以如果在考试中, 为了追求更快获得正确解, 可以选择直接按照指定方式输出各个节点信息的方式。
- 比如: 整理好两个链表之后, 每输出两个长链表元素, 就输出一个短链表元素, 如果短链表输出完毕, 则直接输出长链表元素直到输出完毕。
完整描述步骤
- 获取输入: 链表头一, 链表头二, 总的节点信息个数
- 初始化统计器:
- 链表长度一 = 0
- 链表长度二 = 0
- 整理链表并计算链表长度:
- 从链表头一开始, 直到链表指针指向空地址(即, 地址为-1), 不断累计链表长度一
- 从链表头二开始, 直到链表指针指向空地址(即, 地址为-1), 不断累计链表长度二
- 如果长度一小于长度二, 则:
- 互换链表头一和链表头二
- 互换链表长度一和链表长度二
- 输出"{链表一的第一个元素地址} {链表一的第一个元素数据}"
- 对于索引位置从0到总长度(长度一+长