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

牛牛的链表交换

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

#include <stdio.h>
#include <stdlib.h>
typedef struct List_ {
    int data;
    struct List_* next;
} List, *Listp;
Listp CreatList() { //创建一个节点
    Listp new = (Listp)malloc(sizeof(List));
    new->data = 0;
    new->next = NULL;
    return new;
}
void exchange_first(Listp head) { //交换第一个和第二个节点
    Listp current = head;
    Listp temp = current;
    current = head->next;
    head->next = current->next;
    temp = current->next->next;
    current->next->next = current;
    current->next = temp;

}

void exchange_end(Listp head) { //交换最后一个和倒数第二个节点
    Listp current = head;
    while (current->next != NULL) {
        if ( NULL == current->next->next->next ) {
            Listp temp = NULL;
            temp = current->next;
            current->next = current->next->next;
            current->next->next = temp;
            temp->next = NULL;
            break;
        }
        current = current->next;
    }

}

void print(Listp head) { //打印所有节点
    Listp current = head;
    while (current->next != NULL) {
        printf("%d ", current->next->data );
        current = current->next;
    }
}

int main() {
    Listp head = CreatList();
    Listp current = head;
    int len = 0;
    scanf("%d", &len);
    for (int i = 0; i < len; i++) {//创建列表
        Listp temp = CreatList();
        current->next = temp;
        current = current->next;
    }

    current = head->next;
    for (int i = 0; i < len; i++) {//对列表初始化
        scanf("%d", ¤t->data);
        current = current->next;
    }

    exchange_first(head);
    exchange_end(head);
    print(head);

    return 0;
}

全部评论

相关推荐

07-14 13:47
门头沟学院 Java
Lynn012:你评估好自己的位置了吗《顶尖应届》
投递小米集团等公司7个岗位
点赞 评论 收藏
分享
Twilight_m...:表格简历有点难绷。说说个人看法: 1.个人基本情况里好多无意义信息,什么婚姻状况、健康状况、兴趣爱好、户口所在地、身份证号码、邮政编码,不知道的以为你填什么申请表呢。 2.校内实践个人认为对找工作几乎没帮助,建议换成和测开有关的项目,实在没得写留着也行。 3.工作经历完全看不出来是干什么的,起码看着和计算机没啥关系,建议加强描述,写点你在工作期间的实际产出、解决了什么问题。 4.个人简述大而空,看着像AI生成,感觉问题最大。“Python,C,C++成为我打造高效稳定服务的得力工具”、“我渴望凭借自身技术知识与创新能力,推动人工智能技术的应用发展,助力社会实现智能化转型”有种小学作文的美感。而且你确定你个人简述里写的你都会嘛?你AI这块写的什么“深入研究”,发几篇顶会的硕博生都不一定敢这么写。而且你AI这块的能力和软测也完全无关啊。个人简述建议写你对哪些技术栈、哪些语言、哪些生产工具的掌握,写的有条理些,而且最好是和测开强相关的。
点赞 评论 收藏
分享
asdasdasda...:19岁,不容易啊可能升个本会好点,现在学历歧视太严重了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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