在执行给定的 `MergeList` 函数后,假设初始时链表 `La` 为 (1 -> 3 -> 5),链表 `Lb` 为 (2 -> 4 -> 6),所有节点的内存均由系统动态分配,并且在函数执行结束后,`Lb` 的头结点内存被释放,那么下列关于链表 `Lc` 的描述哪个是正确的?
答案解析
函数 `MergeList` 使用 `La` 的头结点作为 `Lc` 的头结点。循环过程中,会根据值的大小依次将 `pa` 和 `pb` 指向的节点插入到 `Lc` 中,并移动 `pa` 或 `pb` 指针。最后将剩余的链段连接到 `Lc` 的尾部。因此,`Lc` 的链表内容是排序后的结果。选项A正确,因为`Lc`的头结点确实是La的头结点,且链表为排序后的结果,La的头结点指针始终指向原内存。选项B错误,因为`La`的头结点指针不会改变。选项C错误,因为`Lc`的头结点为`La`的头结点,而不是`Lb`的头结点。选项D错误,`Lc` 的头结点不是 `Lb` 的头结点,且链表内容不是 (2 -> 1 -> 4 -> 3 -> 6 -> 5) 。
正确答案:A