在 C++ 中将第一个元素移动到给定链表的末尾

在本教程中,我们将编写一个程序,将第一个元素移动到给定链表的末尾。

让我们看看解决问题的步骤。

  • 初始化链表。

  • 找到链表的最后一个节点。

  • 将第二个节点作为新的头部。

  • 更新第一个和最后一个节点的链接。

示例

让我们看看代码。

#include <bits/stdc++.h>

using namespace std;

struct Node {

   int data;

   struct Node* next;

};

void moveFirstNodeToEnd(struct Node** head) {

   if (*head == NULL || (*head)->next == NULL) {

      return;

   }

   struct Node* firstNode = *head;

   struct Node* lastNode = *head;

   while (lastNode->next != NULL) {

      lastNode = lastNode->next;

   }

   *head = firstNode->next;

   firstNode->next = NULL;

   lastNode->next = firstNode;

}

void addNewNode(struct Node** head, int new_data) {

   struct Node* newNode = new Node;

   newNode->data = new_data;

   newNode->next = *head;

   *head = newNode;

}

void printLinkedList(struct Node* node) {

   while (node != NULL) {

      cout << node->data << "->";

      node = node->next;

   }

   cout << "NULL" << endl;

}

int main() {

   struct Node* head = NULL;

   addNewNode(&head, 1);

   addNewNode(&head, 2);

   addNewNode(&head, 3);

   addNewNode(&head, 4);

   addNewNode(&head, 5);

   addNewNode(&head, 6);

   addNewNode(&head, 7);

   addNewNode(&head, 8);

   addNewNode(&head, 9);

   moveFirstNodeToEnd(&head);

   printLinkedList(head);

   return 0;

}

输出结果

如果你运行上面的代码,那么你会得到下面的结果。

8->7->6->5->4->3->2->1->9->NULL

结论

如果您对本教程有任何疑问,请在评论部分提及。

以上是 在 C++ 中将第一个元素移动到给定链表的末尾 的全部内容, 来源链接: utcz.com/z/355092.html

回到顶部