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

📅  最后修改于: 2021-09-25 07:06:11             🧑  作者: 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)通过将第一个元素移动到列表的最后一个元素并返回修改后的列表。答案:(乙)
说明:函数modify_list(Node * head) 通过将倒数第二个元素移动到列表的前面来修改列表,并返回修改后的列表。

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