📜  数据结构|链表|问题3

📅  最后修改于: 2021-06-29 00:26:19             🧑  作者: Mango

考虑以下函数,该函数以双链表的开头为参数。假设双向链表的节点的上一个指针为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)
说明:给定的函数反转给定的双向链表。有关详细信息,请参见反转双链表。