📌  相关文章
📜  门| Sudo GATE 2020 Mock I(2019年12月27日)|第35章

📅  最后修改于: 2021-06-30 00:32:47             🧑  作者: Mango

考虑以下C函数将单链接列表作为输入参数。

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

修改列表
(A)将最后一个元素移到列表的最前面,并返回修改后的列表。
(B)通过将倒数第二个元素移到列表的前面并返回修改后的列表。
(C)通过将第一个元素移到列表的倒数第二个并返回修改后的列表。
(D)通过将第一个元素移到列表的最后并返回修改后的列表。答案: (B)
说明:函数Modify_list(Node * head)通过将倒数第二个元素移到列表的前面来修改列表,并返回修改后的列表。

选项(B)是正确的。
这个问题的测验