1. Node* newNode = createNode(data);: 创建一个新的Node类型的指针newNode,并调用createNode函数来为它分配内存空间,并将data的值赋给newNode中的data成员变量。
  2. if (*head == NULL) {: 判断指针head指向的节点是否为空。如果为空,则表示链表为空,即还没有任何节点。
  3. *head = newNode;: 如果链表为空,将newNode赋给head指针,使其指向新节点。
  4. (*head)->next = *head;: 将head指针所指向的节点的next指针指向自己,表示新节点的下一个节点是它自己。
  5. (*head)->prev = *head;: 将head指针所指向的节点的prev指针指向自己,表示新节点的前一个节点是它自己。
  6. Node* last = (*head)->prev;: 创建一个新的Node类型的指针last,并将head指针所指向的节点的prev指针赋给last,表示last指向链表中最后一个节点。
  7. newNode->next = *head;: 将newNode的next指针指向head指针所指向的节点,表示新节点的下一个节点是原来的第一个节点。
  8. newNode->prev = last;: 将newNode的prev指针指向last指针所指向的节点,表示新节点的前一个节点是原来的最后一个节点。
  9. (*head)->prev = newNode;: 将head指针所指向的节点的prev指针指向newNode,表示原来的第一个节点的前一个节点是新节点。
  10. last->next = newNode;: 将last指针所指向的节点的next指针指向newNode,表示原来的最后一个节点的下一个节点是新节点
void addNodeNode head int data Node newNode = createNodedata; if head == NULL head = newNode; head-next = head; head-prev = head; else Node last = head-prev;

原文地址: https://www.cveoy.top/t/topic/h9Gx 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录