链表逆转(不带头结点)

递归实现不带头结点的单链表逆置 阅读详情
// Test.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

#include <iostream>

typedef struct _Node {
    int dat;
    _Node *next;

    _Node(int d) {
        dat = d;
        next = nullptr;
    }
    _Node() {
        dat = 0;
        next = nullptr;
    }

} Node, *PNode;

typedef PNode LinkList;

void PrintList(LinkList list) {
    PNode temp = list;
    while (temp != nullptr ) {
        std::cout << temp->dat << ",";
        temp = temp->next;
    }
    std::cout << std::endl;
}

LinkList Reverse(LinkList list) {
    PNode pfront = nullptr, pcur = nullptr, pback = nullptr;
    pcur = list;
    while (pcur != nullptr) {
        pback = pcur->next;
        pcur->next = pfront;
        pfront = pcur;
        pcur = pback;
    }
    return pfront;
}

void TestList() {
    LinkList list = new Node(0);
    PNode temp = list;
    int n = 0;

    while (n++ <= 20) {
        PNode node = new Node(n);
        temp->next = node;
        temp = node;
    }

    PrintList(list);
    LinkList ls = Reverse(list);
    PrintList(ls);
}

int main() {
    TestList();
    return 0;
}


单链表逆转操作 单链表逆转操作,在笔试中经常可见 1实现整体逆转 2.实现相邻元素逆转 立即下载

相关推荐

函数fun的功能是将不带头结点的单向链表逆置

给定程序中,函数fun的功能是将不带头结点的单向链表逆置,即若原链表中从头到尾结点数据域依次为:2、4、6、8、10,逆置后,从头至尾结点数据域依次为:10、8、6、4、2。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

《数据结构》_PTA_数据结构作业2:栈和队列

判断题 1-1 Run the following operations on a stack S: Push(S,1), Push(S,2), Pop(S), Push(S,3), Pop(S), Pop(S). The output sequence must be {1, 2, 3}. F 1-2 If keys are pushed onto a stack in the order abcde, then it’s impossible to obtain the output sequence

国家一级致癌物 9978

【毕业设计参考】基于yolov8+pyqt5自适应界面设计的锂电池表面缺陷检测系统

基于YOLOv8+PyQt5的锂电池表面缺陷检测系统结合了先进的目标检测技术与友好的用户界面设计,为锂电池质量检测提供了一种高效、准确的解决方案。未来,随着深度学习技术的不断发展,我们可以进一步优化模型,提高检测精度和速度,同时拓展系统功能,如实现实时视频流检测、与生产系统的深度集成等,为锂电池产业的发展注入新的活力。希望本文对大家在相关领域的研究和实践有所帮助,欢迎大家在评论区交流讨论。

1182

【PTA】【数据结构与算法】线性表

这里是从PTA平台整理的【线性表】题目集

葑鈊丶 9489

Qt+WebAssembly学习笔记(六)win10+Qt6.4.0rc1开发环境搭建

前言:因项目的缘故,笔者有段时间没测试了,官方也修复了很问题,笔者今天记录下最新版本环境搭建。

aggs1990的专栏 3765

VSCode+ESP-IDF开发环境搭建:从零开始创建你的第一个物联网项目(2024最新版)

本文详细介绍了如何在2024年使用VSCode和ESP-IDF搭建物联网开发环境,从零开始创建第一个物联网项目。内容包括环境准备、ESP-IDF配置、项目创建与结构解析、构建烧录步骤以及高级技巧和常见问题解决方案,帮助开发者快速上手ESP32开发。

weixin_29165725的博客 330

【数据结构】不带头结点的单链表逆转

设置三个辅助变量 p:指向链表的头结点,头指针,初值为list.first q:指向p的后继结点,初值为NULL, front: 逆转之后的链表的头指针,初值为NULL。 算法描述 抓住头插的特点! 头插就是倒序!! 所以逆转就是将原链表的所有元素重新做一遍头插,形成新链表 1.如果链表为空表,抛出异常 2.设置三个辅助变量p(指向链表的头结点,头指针,初值为list.first),q(指向p的后...

SuperSources的博客 2485

基于STM32的超声波流量计设计

本项目基于STM32微控制器设计了一种超声波流量计,采用时间差法测量液体或气体的流速,计算流量并通过显示屏实时显示,同时支持远程数据传输。本设计通过STM32微控制器实现了基于时间差法的超声波流量计,集成了超声波信号采集、流量计算、状态显示和远程通信功能。本系统需要实现超声波信号的实时采集与处理,计算流速和流量,并将数据通过OLED显示和无线模块上传。系统需具备高精度的时间测量能力和良好的抗干扰能力。通过计算超声波在顺流和逆流方向上的传播时间差,结合管道直径与流体特性,计算流速并进一步计算流量。

stm32d1219的博客 2347

链表逆转

下列代码的功能是返回带头结点的单链表L的逆转链表。 List Reverse( List L ) { Position Old_head, New_head, Temp; New_head = NULL; Old_head = L-&gt;Next; while ( Old_head ) { Temp = Old_head-&gt;Ne...

weixin_41112564的博客 8087

LVGL项目内存告急?试试把中文字库放到SD卡里(基于LvglFontTool V0.5)

本文详细介绍了在LVGL嵌入式项目中如何通过将中文字库存储到SD卡来优化内存使用。针对Flash资源有限的MCU,如STM32F103,提供了基于LvglFontTool V0.5的外部字库生成与动态加载方案,适用于多字号、多语言及OTA场景,显著减少固件体积并提升显示灵活性。

weixin_33726318的博客 456

数十个锂电池充放电电路,锂电池充放电芯片

关乎锂电池供电的产品,在锂电池上,需要三个电路系统:1,锂电池保护电路,2,锂电池充电电路,3,锂电池输出电路。 内容目录: 单节的锂电池保护电路单节为3.7V锂电池(也叫4.2V)和3.8V锂电池(也叫4.35V) 单节的锂电池充电电路即锂电池保护板 单节的锂电池输出电路锂电池转换稳压输出为:1.2V,3.3V,5V,12V等等 两节的锂电池保护电路两节串联7.4V锂电池(也叫8.4V) 两节的锂电池充电电路即两节锂电池保护板 两节...

kuakewei123的博客 1万+

链表的逆转之(如何理解链表的逆转函数)

标题:链表的逆转 最近我发现一些同学并不知道链表的逆转函数怎么回事,常常有很多错误。于是,我写了篇文章,来解释一些链表逆转函数的原理,这是我第一次写优快云博客,写得不好,希望大家不要有意见。首先给出链表结点的结构体 typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToN...

weixin_45622336的博客 590

【信创-k8s】银河麒麟V10国防版+鲲鹏/飞腾(arm64架构)在线/离线部署k8s1.30+kubesphere

银河麒麟作为国家核高基专项的重要成果,国防版凭借其卓越的安全性和可靠性,已成为军工领域的首选操作系统。之前我们在适配麒麟V4国防版的过程中已发现诸多安全性要求,而麒麟V10国防版在安全防护等级上又达到了更高的级别。本文将主要演示离线部署,因为军工项目基本不会出现联网场景。即使在线,也可以按离线方式部署,且离线部署由于有私有仓库,不会存在镜像获取不到和丢失情况。

jiaworld的博客 730

单链表逆转(PTA)之C语言实现

题目描述 本题要求实现一个函数,将给定的单链表逆转。 //函数接口定义: List Reverse( List L ); //其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List; /* 定义单链表类型 */ L是给定单链表,函数Revers

David_house的博客 2343

第12步 支持向量机(SVM)

搭建SVM

Jet4505的博客 1050

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

将链表中所有结点链接方向原地逆转

链表的数据结构定义 typedef struct LNode{ int data; struct LNode *next; }LNode,*LinkList; 原地逆转算法 实现链表翻转最直接的方法就是:从链表的头部开始遍历每个结点,改变每个结点的指向,即将原本指向下一个结点的指针改为指向上一个结点。 唯一比较特殊的是,链表中的首元结点(第一个结点)前面没有结点,所以在改变其指针指向的时候,要将其指针指向 NULL。 参考:链表逆置,链表反转,链表翻转(带源码和解析) void Inverse(Lin

weixin_44286174的博客 1万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

数据结构C语言||【逆转单链表】设计一个算法,将一个带头结点的单链表逆转。要求在原链表空间上进行逆转

问题:1.设计一个算法,将一个带头结点的单链表逆转。要求在原链表空间上进行逆转,即不允许构造新的链表结点。只需要写逆转算法,算法方法名为:LinkNode。和指向下一节点的 Node * next;定义结构体名为Node;其中包含数据data;

ingorenge的博客 410

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

函数题6.实验2-4 单链表分段逆转

实现单链表的分段反转

2301_80684112的博客 455

6-1 单链表逆转 (20分) C语言

本题要求实现一个函数,将给定的单链表逆转。 函数接口定义: List Reverse( List L ); 其中List结构定义如下: typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef PtrToNode List; /* 定义单链表类型 */ L是给定单链表,函数Reverse要返回

NUX_A的博客 479

链表链表链表-wjm的最爱

创建单个节点: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstdlib&gt;//malloc #include&lt;cstring&gt; typedef struct node* list; using namespace std; struct node{ int data; struct node*...

qiulianshaonv_wjm的博客 343

【数据结构】设有一带头结点的单链表,编程将链表颠倒过来。要求不用另外的数 组或结点完成。

该算法通过维护三个指针(prev、curr 和 next)逐步遍历单链表,实现链表的逆转。在遍历过程中,curr 的 next 指针被更新为指向 prev,逐步反转指向。最终,头结点的 next 指针指向新的头节点(即原链表的尾节点),从而完成链表的逆转。这一过程只需 (O(n)) 的时间复杂度和 (O(1)) 的空间复杂度。解法不唯一,欢迎评论区交流。

放纵小开爱的博客 546

数据结构实训一:单链表的基本运算

定义一个数据域为整数值的单链表,编程实现如下功能: (1)设计一个CreatList函数,实现通过前插法创建一个有n个结点的单链表(带头结点);设计一个 PrintList函数,实现输出单链表的各个元素的值。要求:用main函数控制调用实现相关功能。 (2)修改(1)中的CreatList函数,实现通过后插法创建一个有n个结点的单链表。 (3)设计一个ListDelete函数,在前面所创建的单链...

匿名攻城狮 2575

求单链表最大孪生和

求单链表最大孪生和,单链表

m0_56332819的博客 384

数据结构之线性表

1.逆转顺序表中的所有元素 void Reverse(int A[ ],int n){ int i,t; for(i=0;i<n/2;i++){ t = A[i]; A[i] = A[n-i-1]; a[n-i-1] = t; } } 删除线性表中数据域为 X 的所有结点 void Del_X(Linklist &L,Elemtype X){ Linklist p,q = L; p = L->next; while

GoldWings 372

最清晰的单链表实现,包括带头结点和不带头结点实现和链表反转

看到网上很多人做单链表是否带头结点的实现比较疑惑,而且很多博客文章都是错误的,刚好最近在刷题,做下笔记,带头结点是一种数据结构常用的设置哨兵位的方法技巧,目的是简化代码实现,在这里就是方便统一单链表在删除和插入时链表只剩一个结点的操作。 以下代码对两种单链表做了详细实现,还有世上最简单的单链表反转方法 class Node(object): """结点类""" def __init...

qq_40728805的博客 325

不带头节点的反转链表

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。:创建新节点:我们使用 new操作符动态分配内存 , c语言中可以使用malloc函数,并设置节点的 `data` 和 `next`(指向 `NULL`,表示当前是最后一个节点)。首先,我们定义一个链表节点结构体 `node`,包含一个整数数据域 `data` 和一个指向下一个节点的指针 `next`。- 递归终止条件:如果当前节点为空或下一个节点为空,返回当前节点(此时链表为空或只有一个节点,已经无需反转)。

weixin_73012949的博客 701
上一篇: QWebEngineView无法打开二级页面
下一篇: cmake 编译找不到 Qt5WebKitConfig.cmake
SimpleForest
博客等级 码龄10年 171粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值