题解 | #牛牛的链表交换#

牛牛的链表交换

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;
}


全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务