如果 `MergeList` 函数的输入链表 `La` 和 `Lb` 均为空链表(即只有头结点,头结点的 `next` 指针为 `NULL`),在函数执行完毕后,关于 `Lc` 和 `Lb` 的状态,下列哪个描述是准确的?
答案解析
当 `La` 和 `Lb` 均为只含有头结点的空链表时, `pa` 和 `pb` 初始都为 `NULL`。`while` 循环条件 `(pa && pb)` 不成立,直接跳过循环体。`pc->next = pa?pa:pb;` 这条语句,因为`pa`和`pb`都为`NULL`,所以`pc->next`仍然为`NULL`, 其中`pc`为`La`的头结点。最后执行`free(Lb);`释放`Lb`头结点内存。因此 `Lc` 的头结点的 `next` 指针保持为 `NULL`,并且 `Lb` 的头结点内存被释放。选项A正确,选项B错误,`Lc` 的头结点`next`不指向 `Lb` 的头结点。选项C错误,`Lb` 的头结点内存被释放。选项D错误,`Lc` 的头结点 `next` 不指向 `La` 的头结点。
正确答案:A