单链表节点交换

数据结构-单链表交换节点 数据结构 - 单链表交换节点普通情况的结点交换----相邻结点使用一般情况相邻结点单独处理 普通情况的结点交换 temp_pre->next = p; p_pre->next = p->next;//key step p->next = temp->next; temp->next = p_pre->ne 阅读详情

输入一个单链表,将奇数位置上的节点与偶数位置上的节点进行交换,然后输出交换之后的链表。

输入格式

第一行包含整数 n,表示节点数量。

第二行包含 n 个整数,表示每个节点的值。

输出格式

共一行,输出交换后的链表。

数据范围

1≤n≤100,
节点取值范围 [1,100]。

输入样例:

5
1 2 3 4 5

输出样例:

2 1 4 3 5

 Code:

#include <iostream>
#include <stdio.h>
#include <malloc.h>

using namespace std;

const int N = 100010;

typedef int Status;

typedef struct LNode
{
    int data;
    struct LNode *next;
}
LNode, *LinkList;

int n;

void Init_LinkList(LinkList & L)
{
    L = (LinkList) malloc (sizeof(LNode));
    L->next = NULL;
}

void Creat_HLinkList(LinkList & L, int n)
{
    LNode *r = L;
    for(int i = 1; i <= n; i ++ )
    {
        int x;
        scanf("%d", &x);
        LNode *s = (LinkList) malloc (sizeof(LNode));
        s->data = x;
        r->next = s;
        s->next = NULL;
        r = s;
    }
}

void Change_LinkList(LinkList & L) //交换节点
{
    LNode *p = L->next;  int j = 0;
    while(p)
    {
        j ++;
        if(j % 2 == 1 && p->next != NULL)  swap(p->data, p->next->data);
        p = p->next;
    }
}

void Travers_LinkList(LinkList & L)
{
    LNode *p = L->next;
    while(p)
    {
        cout << p->data << ' ';
        p = p->next;
    }
}

signed main()
{
    LNode *L;
    cin >> n;
    Init_LinkList(L);
    Creat_HLinkList(L, n);
    Change_LinkList(L);
    Travers_LinkList(L);
}

单链表相邻两个节点之间交换顺序 思路代码 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ public class Solution { public ListNode 阅读详情

相关推荐

Java单链表基本操作(九)--交换相邻节点对的值

本题目来源于:Leetcode: 24.swap nodes in pairs(单链表中交换节点对的值) Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you should return the list as 2->1->4->3.

gaven的博客 4656

交换链表的奇偶节点

给定一个单链表,把所有的奇数节点和偶数节点分别排在一起。

BIGwangg的博客 1308

Python爬虫实战:避开巨潮资讯网反爬,稳定获取上市公司年报PDF下载地址

本文详细介绍了如何使用Python和Selenium突破巨潮资讯网的动态加载限制,稳定获取上市公司年报PDF下载地址。通过模拟真实用户操作、智能等待策略和反反爬虫技巧,帮助开发者高效爬取财经数据,适用于股票代码查询和年报分析等场景。

weixin_29065659的博客 1665

链表中奇数位和偶数位的置换

1. 题目描述 两两交换链表中的节点 2. 题目分析 1.链表如下所示: 2. 建立一个root结点,并建立两个结点指针,如图所示: 注意:这里的0结点,是JAVA建立root结点是附带的:ListNode root = new ListNode(0); 3. 思路如下: 将p1.next连接到p2.next(0----->2),如下: 将p2.next连接到p1.next.next...

爱敲代码的小黄 1614

Python邮件自动化实战:基于imaplib和email库的高效邮件管理方案

本文详细介绍了如何使用Python的imaplib和email库实现高效邮件自动化管理。通过实战案例展示自动收取、解析邮件、下载附件等核心功能,帮助开发者快速构建企业级邮件处理系统,大幅提升工作效率。特别适合需要处理大量邮件的金融、数据分析等场景。

weixin_30500105的博客 618

手把手教你为ArduPilot添加自定义飞行模式:以自动巡检航线为例

本文详细介绍了如何为开源飞控ArduPilot添加自定义飞行模式,并以自动巡检航线为例,提供了从状态机设计、代码实现到地面站集成的完整开发指南。通过七步法手把手教学,帮助开发者深入理解飞控核心逻辑,实现无人机自主执行复杂巡检任务,满足行业应用定制需求。

weixin_29306875的博客 135

链表进阶操作一:调换相邻节点的位置 以及 让节点所有奇偶位置互换(图文演示,通俗易懂)

关于链表有很多可以实现的操作,接下来讲讲一些关于链表的进阶操作。 我们先来讲讲相邻节点是如何调换的 一、先创建一条链表 直接上代码(不知道如何创建链表的同学可以看看我上一篇文章) //需要的两个头文件 #include<stdio.h> #include<stdlib.h> //定义结构体(包含指针域和数据域) typedef struct Node { int data; struct Node *next; } Node; int main() { Nod

qq_54547310的博客 3626

【一键搞定】ThinkPHP6.0.2+PHPStudy+Composer极速安装指南——附完整下载包与避坑技巧

本文提供了一份ThinkPHP6.0.2的完整下载包,并详细介绍了如何配合PHPStudy和Composer进行极速安装与配置。指南涵盖了环境准备、Composer国内镜像加速、项目部署及常见避坑技巧,旨在帮助开发者,尤其是内网或网络不佳的用户,快速搭建可运行的TP6开发环境,绕过依赖下载的繁琐步骤。

assembly8low的博客 1006

leecode328. 奇偶链表

给定单链表的头节点 head ,将所有索引为奇数的节点和索引为偶数的节点分别组合在一起,然后返回重新排序的列表。 第一个节点的索引被认为是 奇数 , 第二个节点的索引为 偶数 ,以此类推。 请注意,偶数组和奇数组内部的相对顺序应该与输入时保持一致。 你必须在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题。 示例 1: 输入: head = [1,2,3,4,5] 输出:[1,3,5,2,4] 示例 2: 输入: head = [2,1,3,5,6,4,7] 输出: [.

liuhongtaowxp1的博客 452

Windows Server双机热备实战:用IIS+ARR+NLB搭建高可用Web服务(附避坑指南)

本文详细介绍了在Windows Server环境下,利用IIS、ARR(Application Request Routing)和NLB(Network Load Balancing)构建高可用Web服务的实战方案。通过双机热备架构,实现从网络层到应用层的全面冗余与智能流量分发,并提供了关键的配置步骤、常见避坑指南及性能调优建议,确保企业级Web服务的连续性与可靠性。

weixin_29210759的博客 383

MAC-电脑中的user文件夹在哪?

MAC-电脑中的user文件夹在哪?

兴趣是最好的老师 1万+

【PTA】数据结构与算法->6-7 LinkList5-交换单链表第n和n+1个链点,作者 通信DS课程组单位 成都信息工程大学

题目要求:带头结点的单链表,头指针为h,编写算法SwapN_inList( ),实现单链表中第n个结点和第n+1个结点相互交换,如果n为尾结点,需要向用户输出提示信息,代表交换失败,返回0,若交换成功返回1,并打印交换后的单链表。带头结点的单链表结点定义如下: 函数接口定义: 其中 , , 都是用户传入的参数。 是单链表的头指针,代表需要进行交换的链点位置,是在遍历A链表时顺便记录A链表的长度。 裁判测试程序样例: 输入样例: 输出样例: --------------

qq_44854473的博客 537

SAP RAP 校验全流程:从 EML 读取到消息上屏与阻止落库

本文系统梳理了 SAP ABAP RAP 中的校验流程(The Validation Process),结合 Airline/Connection 案例,详细讲解了三类核心校验:语义键唯一性、外键有效性和字段间一致性。文章覆盖了 EML 的 READ ENTITIES 操作、reported-* 与 failed-* 结构的使用方法、消息创建与字段绑定技巧,以及处理草稿数据时的 UNION 查询策略。通过代码示例演示了如何实现校验逻辑、生成错误消息并阻止无效数据持久化,同时提供了常见问题的排查建议。全文注重

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 332

C++ 单链表节点交换

这里提供两种方法,一种是只交换对应的数据,另一种是通过更改指针来交换节点。而更改指针中又可以分为新建节点与不新建节点的方法。

White--Night的博客 2721

Lammps实现Ar的沸腾过程(包含in文件)

Lammps实现简单的沸腾过程

Rockyoung 3503

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

C++单链表操——作交换节点

链表是最为常见,并且经常需要使用到的数据结构之一。对于单链表的基本操作,例如创建链表、插入、删除等都不是特别复杂,但是其实对于链表的操作实际上很多的操作还是有一定的难度,例如上次给出的单链表的逆转,以及这里的单链表交换两个节点。   单链表的交换节点的含义是:给定一个单链表,要求交换其中的任意两个节点。注意这里链表的头节点是不参与节点交换的。这个看上去是比较简单,但是实现起来却还是需要一定的基本

u011832277的专栏 3387

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

链表-交换单链表的相邻节点

//交换单链表的相邻节点 public Node swapPairs(Node head) { if(head == null||head.next==null){ return head; } Node cur = head; Node prev = cur; // 连接每对节点 if(cur.next != null...

六月二十七的博客 2800

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

c语言单链表交换节点排序,单链表排序交换节点算法

单链表交换节点排序,包括选择法、比较法、排序法。用C实现代码如下:#include#include#include#define TRUE 1#define FALSE 0#define ERROR 0#define OVERFLOW 0#define OK 1typedef int Status;typedef int ElemType;struct LNode{ElemType data;st...

weixin_30750685的博客 1276

单链表进行排序-通过节点交换,不通过值交换

原来我一直都不会对链表进行排序,呵呵,比较菜。今天下了很大的功夫学习对链表的排序,和大家分享一下!         对链表的排序主要有两种方法:         一:只交换节点中的元素,不改变链表的顺序。        二:直接交换节点,不改变节点中的元素。         其中交换节点是最麻烦的,稍不注意就会出错!而交换节点中的元素还是比较简单的。用几个swap( )就可

1万+

单链表操作——交换节点

链表是最为常见,并且经常需要使用到的数据结构之一。对于单链表的基本操作,例如创建链表、插入、删除等都不是特别复杂,但是其实对于链表的操作实际上很多的操作还是有一定的难度,例如上次给出的单链表的逆转,以及这里的单链表交换两个节点。        单链表的交换节点的含义是:给定一个单链表,要求交换其中的任意两个节点。注意这里链表的头节点是不参与节点交换的。这个看上去是比较简单,但是实现起来却还是

1万+

单链表操作——交换节点-dm

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33928467的博客 907

交换单链表的任意两个节点

#include iostream>using namespace std;/**//* link node struct */struct Node...{public:    Node():val(0), next(NULL)    ...{    }    Node(int _val,  Node* _next):val(_val), next(_next)    ...{    }  

Make Progress Everyday! 5037

单链表-交换相邻节点 & 反转链表

定义单链表 class MyLinkedList { static class ListNode{ int val; ListNode next; public ListNode(int val,ListNode next){ this.val = val; this.next = next; } } ListNode head,tail; int size

dinghua_xuexi的专栏 1154

java单链表交换相邻元素_1.7交换链表中的相邻节点

交换链表中的相邻节点题目描述:把链表相邻元素翻转,例如给定链表为1——>2一>3一>4一>5——>6一>7,则翻转后的链表变为2一>1一>4一>3一>6一>5一>7解题思路:就地逆序法:通过调整结点指针域的指向来直接调换相邻的两个结点。如果单链表恰好有偶数个结点,那么只需要将奇偶结点对调即可,如果链表有奇数个结点,那么只需要将除最后一个结点外的其它结点进行奇偶对调即可。代码实现:# -...

weixin_39673972的博客 741

12.单链表节点交换

输入一个单链表,依次交换前2个数,第3、4个数,第5、6个数,…,以此类推,直到操作完整个链表。如果链表长度是奇数,则最后一个数不用操作。输出交换之后的链表。

weixin_53525632的博客 296

单链表排序(交换节点)

单链表排序(移动节点) 单链表排序利用了选择排序的方式; 创建一个单链表结构体 typedef int data_t;//为了能适应存储其他类型数据,可以将int换成其他数据类型而不通用一个一个更改程序里的了 typedef struct node{ data_t a;//链表里存的数据 struct node *next;//指向下一个节点 }linknode,* linklist;//创建结构体变量和指针 单链表节点的结构形式出来啦,接下来我们就按图施工,创建链表吧 linklist link_

weixin_48755527的博客 2487
上一篇: 线性表的基本操作
下一篇: 天梯训练赛——7-13 那就别担心了 (30 分)
MITBlick
博客等级 码龄5年 10粉丝 97原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值