首页 > 其他分享 >数据结构链表交换

数据结构链表交换

时间:2024-03-22 15:33:38浏览次数:18  
标签:head ListNode int 交换 next 链表 数据结构 data

把一个长度为 n 的数组转换成链表并把链表前两个节点交换位置和把链表最后两个节点交换位置。

输入描述:
第一行输入一个正整数 n 表示数组的长度
第二行输入 n 个正整数,表示数组中各个元素的值
输出描述:
把数组转换成链表后输出交换位置后的链表

输入:
4
2 3 4 5
输出:
3 2 5 4

#include <stdio.h>
#include <stdlib.h>
typedef struct ListNode
{
    int data;
    struct ListNode* next;
}ListNode;

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

         p->next=s;
         p=p->next;
    
    }
    return head;
}
void show_list(ListNode *head)
{
    ListNode *p=head;
    while(p!=NULL)
    {
        printf("%d ",p->data);
        p=p->next;
    }
}
void Swap(int*a,int*b)
{
    int tmp=*a;
    *a=*b;
    *b=tmp;
}
int main() {
    int n;
   scanf("%d",&n);
   int arr[n];
   for(int i=0;i<n;i++)
   {
    scanf("%d ",&arr[i]);
   }
   ListNode *head=creat_list(arr,n);
   ListNode *pre=head,*p=head->next;
   Swap(&pre->data,&p->data);
   while(p->next!=NULL)
   {
    pre=p;
    p=p->next;
   }
   Swap(&pre->data,&p->data);
   show_list(head);
    return 0;
}

标签:head,ListNode,int,交换,next,链表,数据结构,data
From: https://blog.csdn.net/agwstp21/article/details/136942526

相关文章

  • 交换机
    交换机目录交换机1、交换机的功能2、交换机的原理3、以太网帧的格式1、交换机的功能功能作用学习功能数据帧经过交换机,交换机会自动学习数据帧的源mac地址转发功能数据帧经过交换机,会在mac表中查找数据帧的目的mac,查找成功,会从相应的接口转发数据查询功能(泛......
  • leetcode148. 排序链表-归并法
    148.排序链表题干给你链表的头结点head,请将其按升序排列并返回排序后的链表。示例1:输入:head=[4,2,1,3]输出:[1,2,3,4]示例2:输入:head=[-1,5,3,4,0]输出:[-1,0,3,4,5]示例3:输入:head=[]输出:[]提示:链表中节点的数目在范围[0,5*104]内-105<=N......
  • 三层交换和单臂路由
    三层交换和单臂路由作用:利用三层交换和单臂路由实现vlan之间的相互通信工作原理:单臂路由:路由器重新封装MAC地址,转换VLANID三层交换机:一次路由,多次交换一次路由:数据流的第一个数据包由三层引擎来处理,重新封装MAc,再路由转发数据包多次交换:第一个数据包转发后,会在硬件创建一......
  • 关于华为交换机dhcp在维护
    DHCP报文介绍DHCP报文类型DHCP服务器与DHCP客户端之间通过DHCP报文进行通信。DHCP报文是基于UDP协议传输的。DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号。目前DHCP定义了如下八种类型报文。DHCP租期和地址池根据IP地址......
  • 【交换机】华三交换机基本命令
    1.disinterfacebrief(V5及以上版本)disbriefinterface(V3版本)//查看交换机所有端口的信息2.discu//查看交换机配置3.disipinterfacebrief//查看vlan接口IP4.disarpinterfaceg1/0/1 //查看g1/0/1口的arp表disarp192.168.0.2 //查看与192.168.0.2相关arp内......
  • 数据结构与算法设计
    前言最近在复习数据结构,两年前曾经阅读过大量相关书籍,包括各种算法入门书和一些游戏逻辑代码。当时自认为花了大量时间理解排序算法的逻辑,但是要自己复述仍然存在困难,做题数目也偏少,说明并没有纳入自己的知识体系。但存在一个问题是,没有自己动手写大量的程序,只是短时间(半个月)内......
  • 数据结构与算法基础知识
    数据结构与算法1算法的基本概念算法:是指一组有穷的指令集,是解题方案的准确而完整的描述。也不等于计算方法。算法的基本特征:确定性,算法中的每一步骤都必须有明确的定义,不允许有多义性;有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;可行性,算法原则上能够精......
  • C++版数据结构与算法
    大家好,今天开始给大家每天带来C++版的数据结构与算法,后面也会包括C#的系统学习。这段代码是一个C++实现的排序算法集合。其中包括选择排序(selectionsort)、冒泡排序(bubblesort)、插入排序(insertionsort)和归并排序(mergesort)。算法后越往后越难,此次做这个系列博客,是想从......
  • 删除有序链表中重复的元素-1
    描述删除给出链表中的重复元素(链表中元素从小到大有序),使链表中的所有元素都只出现一次例如:给出的链表\(1\to1\to2\),返回\(1\to2\)给出的链表为\(1\to1\to2\to3\to3\),返回\(1\to2\to3\)数据范围:链表长度满足\(0\len\le100\),,链表中任意节点的值满足\(\midval\mid\le1......
  • Redis第二课,1.set key value(设置对应的key和value)2.get key(得到value值)Redis全局
    Redis的启动 redis-cli目录1.setkeyvalue(设置对应的key和value)2.getkey(得到value值)Redis全局命令(支持很多的数据结构)3.keys(用来查询当前服务器匹配的key)生产环境/线上环境4.exist(判定key是否存在):判定key是否存在​编辑5.DEL  key 返回删掉的key......