c语言实现单链表逆序算法,C语言解字符串逆序和单向链表逆序问题的代码示例...
字符串逆序上次面试碰到一个单向链表逆序的题目,幸好对字符串逆序比较熟悉,类比做出来了。字符串逆序比较简单,直接上代码:
void stringReverse(char* p1,char* p2)
{
if(p1==p2)return;
//swap the value of p1 ,p2
*p1=(*p1)+(*p2);
*p2=(*p1)-(*p2);
*p1=(*p1)-(*p2);
if(p1==p2-1)return;
else stringReverse(++p1,--p2);
}
调用示例:
stringReverse(str,str+strlen(str)-1);
单向链表逆序先上三幅图:原始状态是图一,全部逆序之后是图三的样子,图二是逆序一步之后的样子。按照图二的步骤依次往后,每次移动一步,把p1->next 反向,直到全部逆序。详细原理请看代码。
图一:
图二:
图三:
typedef struct Node Node;
struct Node{
int data;
Node* next;
};
Node* reverseLinkList(Node* head){
if (head==NULL||head->next==NULL) {
return head;
}
Node* p1 = head;
Node* p2 = p1->next;
Node* p3 = p2->next;
p1->next = NULL;//p1要变成尾指针,所以指向NULL
while (p3!=NULL) {
p2->next = p1;//p2->next 反向
p1=p2;//p1指针向后移动一步
p2=p3;//p2指针向后移动一步
p3=p3->next;//p3指针向后移动一步
}
p2->next=p1;//p3指向了NULL,p2反向
head=p2;//头指针指向之前的尾指针
return head;
}
至此结束了。
时间: 2016-06-05
c语言实现单链表逆序算法,C语言解字符串逆序和单向链表逆序问题的代码示例...相关推荐
- C语言链表的转置算法,c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置.doc...
c语言编程集 数据结构 顺序表 点链表 数制转换 矩阵转置 #include "stdio.h" #include "malloc.h" /*typedef s ...
- 单像素骨架提取算法c语言实现,【图像】骨架提取与分水岭算法
1.骨架提取 骨架提取,也叫二值图像细化.这种算法能将一个连通区域细化成一个像素的宽度,用于特征提取和目标拓扑表示. morphology子模块提供了两个函数用于骨架提取,分别是Skeletonize ...
- 逆序对算法c语言,归并排序求逆序对的代码(C语言)
#include #include #define MAX 32767 int merge(int *array, int p,int q,int r) { //归并array[p...q] 与 ar ...
- 归并求逆序对算法图文详解
给定一个长度为 n 的整数数列,请你计算数列中的逆序对的数量. 逆序对的定义如下:对于数列的第 i 个和第 j 个元素,如果满足 i<j 且 a[i]>a[j],则其为一个逆序对:否则不是 ...
- C语言中 用选择结构编译算法,C语言程序设计立体化教程(高等教育立体化精品系列规划教材)...
导语 内容提要 李刚.唐炜主编的<C语言程序设计立体化教程(高等教育立体化精品系列规划教材)>主要分为四篇:语法基础篇.程序设计结构篇.初级应用篇和高级应用篇:其中第一篇语法基础部分介绍了 ...
- 算法c语言实现第6部分,妙趣横生算法C语言实现 (6)
#include "stdio.h" typedef struct ArcNode{ /*单链表中的结点的类型*/ int adjvex; /*该边指向的顶点在顺序表中的位置*/ ...
- c语言实现FIFO算法和LRU算法,C语言实现FIFO算法与LRU算法
在操作系统中,当程序在运行过程中,若其所要访问的页面不再内存中而需要把他们调入内存,但内存已无空闲空间时,为了保证该进程能正常运行,系统必须从内存调出一页程序或数据送磁盘的兑换区中.但哪一个页面调出, ...
- 滑动平均滤波c语言_10种简单的数字滤波算法(C语言源程序)
假定从 8 位 AD 中读取数据(如果是更高位的 AD 可定义数据类型为 int ) , 子程序为 get_ad(); 1 .限副滤波 /* A 值可根据实际情况调整 value 为有效值, new_ ...
- c语言中边框所占两列一行,css中的border-collapse属性如何设置表格边框线?(代码示例)...
css中的border-collapse属性如何设置表格边框线?本篇文章就给大家介绍css中的border-collapse属性是什么? border-collapse属性设置表格边框线的方法.有一定 ...
最新文章
- c# Pdf 转换图片
- 《Redis官方文档》用Redis构建分布式锁(悲观锁)
- docker php gd png.h,docker php 容器安装GD库
- 《学习之道》第六章习惯的部分-反应程序
- 如何使用JS来开发室内地图商场停车场车位管理系统
- 双路服务器单路运行,架构设计-具体案例求解惑:两个单路服务器比一个双路服务器性能高100%?...
- 电脑管理器地址栏 按右键会有的功能
- win11右键新建没有txt文本文档记事本怎么办
- Kubelet cAdvisor 资源监控
- 普通卷积、分组卷积和深度分离卷积概念以及参数量计算
- 谷歌正式放弃与雅虎的广告合作计划
- 年中大促,华硕破晓PX574特惠专场,直降400!
- 2020.10.13--PS--像素化滤镜、扭曲类滤镜、波浪和水波
- MATLAB 字符串数组
- java弱化胖瘦客户端_Java架构师成长直通车百度云
- 自动驾驶Apollo安装步骤
- 6万字新型智慧城市一网统管顶层设计方案
- 计算机的英语作文模板,计算机英文模板 简历
- VMware虚拟机桥接方式实现上网互通
- 深度学习之 人脸识别(3) 摄像头识别人脸 实例