考虑以下函数,该函数以双链表的开头为参数。假设双向链表的节点的上一个指针为prev ,下一个指针为next 。
void fun(struct node **head_ref)
{
struct node *temp = NULL;
struct node *current = *head_ref;
while (current != NULL)
{
temp = current->prev;
current->prev = current->next;
current->next = temp;
current = current->prev;
}
if(temp != NULL )
*head_ref = temp->prev;
}
假设下面的双向链表头的引用传递给上述函数
1 2 3 4 5 6。
函数调用后,修改后的链表应该是什么?
(A) 2 1 4 3 6 5
(B) 5 4 3 2 1 6。
(C) 6 5 4 3 2 1。
(D) 6 5 4 3 1 2答案: (C)
说明:给定的函数反转给定的双向链表。有关详细信息,请参见反转双链表。