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

📅  最后修改于: 2021-09-08 15:09:21             🧑  作者: Mango

以下 C函数采用简单链接列表作为输入参数。它通过将最后一个元素移动到列表的前面来修改列表并返回修改后的列表。代码的某些部分留空。选择正确的替代方法来替换空行。

typedef struct node 
{
  int value;
  struct node *next;
}Node;
   
Node *move_to_front(Node *head) 
{
  Node *p, *q;
  if ((head == NULL: || (head->next == NULL)) 
    return head;
  q = NULL; p = head;
  while (p-> next !=NULL) 
  {
    q = p;
    p = p->next;
  }
  _______________________________
  return head;
}

(A) q = NULL; p-> 下一个 = 头;头 = p;
(B) q->next = NULL;头 = p; p-> 下一个 = 头;
(C)头 = p; p->next = q; q->next = NULL;
(D) q->next = NULL; p-> 下一个 = 头;头 = p;答案: (D)
说明:见https://www.geeksforgeeks.org/data-structures-and-algorithms-set-24/的问题1
这个问题的测验