#include <stdio.h>
typedef struct LinkNode
{
int data;
struct LinkNode *next;
} Node;
//非递归解法
Node* reverse1(Node* header) {
Node* p = header->next;
header->next = NULL;
Node* q = p->next;
while(q) {
p->next = header;
header = p;
p = q;
q = p->next;
}
p->next = header;
header = p;
return header;
}
//递归解法
Node* reverse2(Node* header) {
if(header == 0 || header->next == 0)
return header;
Node* p = header->next;
Node* q = reverse2(p);
p->next = header;
header->next = 0;
return q;
}
int main() {
Node h = {1, 0};
Node* head = &h;
Node node1 = {3, 0};
Node node2 = {2, 0};
Node node3 = {4, 0};
Node node4 = {7, 0};
Node node5 = {6, 0};
Node node6 = {5, 0};
head->next = &node1;
node1.next = &node2;
node2.next = &node3;
node3.next = &node4;
node4.next = &node5;
node5.next = &node6;
node6.next = NULL;
Node* p = reverse2(head);
while(p) {
printf("p->data = %d\n", p->data);
p = p->next;
}
return 0;
}
分享到:
相关推荐
### 单链表原地逆置的概念 单链表是一种常见的线性数据结构,其中每个元素包含一个指向其后继元素的指针。对于单链表的原地逆置操作,指的是不借助额外的数据结构来创建新的链表,而是在原有的链表基础上通过修改...
数据结构老师布置的作业,运用课本代码,较为基础经典,适合大学本科在上数据结构这门课的同学参考,简单易懂,关于单链表的逆置问题
### 单链表就地逆置的方法 #### 知识点概述 在计算机科学与数据结构领域中,链表是一种常见的线性数据结构,由一系列节点组成,每个节点包含一个数据元素以及指向下一个节点的指针。对于单链表而言,每个节点只有...
单链表的逆置,就是将单链表按相反的方向存放,使指针的方向发生变化。这里建立了相关的函数,并包含主函数
c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出c++代码实现单链表逆置输出...
单链表就地逆置的算法通常涉及三个指针:前驱指针(prev)、当前指针(curr)和临时指针(temp)。以下是一种常见的实现方法: 1. 初始化前驱指针prev为null,当前指针curr为链表头节点。 2. 遍历链表,对于每个...
### 单链表逆置知识点解析 #### 一、单链表基础知识 1. **定义**:单链表是一种线性表的数据结构,其每个元素包含一个存储数据的字段(称为节点的数据部分)和一个指向下一个元素的链接(称为节点的指针部分)。...
逆置单链表是指将链表中的元素顺序反转,原本的头节点变为尾节点,原本的尾节点变为头节点。就地逆置意味着在不使用额外空间的情况下完成这一操作,只用到链表本身。 首先,我们来深入理解单链表的结构。定义一个...
输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。 Input 输入多个整数,以-1作为结束标志。 Output 输出逆置后的单链表数据。 ...
### 单链表逆置算法详解 #### 一、引言 在计算机科学中,链表是一种常用的数据结构,它由一系列节点组成,每个节点包含数据域和指向下一个节点的指针。单链表是最简单的一种链表形式,其中每个节点只包含一个指向其...
单链表操作就地逆置删除mink到maxk之间的元素#include<stdio.h>
单链表的逆置
单链表的逆置
单链表的逆置
### 单链表逆置概要介绍与深入分析 #### 一、理论描述与基本概念 单链表逆置作为数据结构领域中的一个重要且经典的课题,不仅在学术研究中有广泛的应用,在实际软件开发中也同样重要。它涉及的核心操作是对单链表...