题解 | #牛牛的链表交换#
牛牛的链表交换
https://www.nowcoder.com/practice/0e009fba6f3d47f0b5026b5f8b0cb1bc
#include <iostream> using namespace std; struct Node{ int num; Node* next; }; int main() { int n; cin >> n; int array[n]; for(int i = 0;i < n;i++) { cin >> array[i]; } Node* head = new Node; head->next = nullptr; Node* temp = head; // 数组写入链表 for (int i = 0;i < n;i++) { Node* cur = new Node; cur->num = array[i]; temp->next = cur; temp = temp -> next; } // 前两个节点交换 temp = head; Node* temp1 = temp->next->next; temp->next->next = temp->next->next->next; temp1->next = temp->next; temp->next = temp1; //cout << temp->next->num; //cout << temp->next->next->num; // 后两个节点交换 int n1 = n-2; while (n1--) { temp = temp->next; } Node* temp2 = temp->next; temp->next = temp->next->next; temp->next->next = temp2; temp2->next = nullptr; temp = head; // 打印链表 for (int i = 0; i < n; i++) { temp = temp->next; cout << temp->num << " "; } return 0; }