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

牛牛的链表交换

https://www.nowcoder.com/practice/0e009fba6f3d47f0b5026b5f8b0cb1bc

#include <stdio.h>
#include <stdlib.h>

typedef struct ListNode
{
    int data;
    struct ListNode* next;
}ListNode;

ListNode* creat_list(int *arr,int n)
{
    ListNode *La = (ListNode *)malloc(sizeof(ListNode));
    La -> data = arr[0];
    La -> next = NULL;
    ListNode *r = La;
    for(int i = 1;i<n;i++)
    {
    ListNode *s = (ListNode*)malloc(sizeof(ListNode));
    s -> data = arr[i];
    s -> next = NULL;
    r -> next = s;
    r = s;
    }
    return La;
}

void Swap(int *a,int *b)
{
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}

void SwapNode(ListNode *La)
{
   ListNode *pa = La, *pb = La -> next;
   Swap(&pa->data,&pb->data);
   while(pb -> next != NULL)
   {
    pa = pb;
    pb = pb -> next;
   }
   Swap(&pa->data,&pb->data);
}

void Printlist(ListNode *La)
{
    ListNode *pa = La;
    while(pa)
    {
        printf("%d ",pa -> data);
       pa =  pa -> next;
    }
}

int main() {
    int n = 0;
    scanf("%d",&n);
    int arr[n];
    for(int i=0; i<n; i++)
    {
        scanf("%d",&arr[i]);
    }
    ListNode* La = creat_list(arr,n);
    SwapNode(La);
    Printlist(La);
    return 0;
}

主要就是链表的基本定义,构造,添加元素,输出。

全部评论

相关推荐

01-29 15:45
已编辑
华中科技大学 前端工程师
COLORSN:可以试一下,小厂看技术栈是不是很落后,如果太拉胯就别去,个人认为有实习氛围比你自己琢磨要高效不少,然后就是小厂其实也有可能会问的很难,这都比较难说,还是看自己项目含金量够不够,寒假还能不能推进学习再选择,毕竟去实习过年就10天假了
点赞 评论 收藏
分享
2025-12-24 13:37
已编辑
浙江农林大学 C++
Eryi_是不是名字...:金牌哥,你这要是考研C9进复试线乱杀啊。可以试试字节腾讯华子,我感觉投华子实习概率很大啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务