面试题整理-链表的几个微操

Screenshot_2026-11-03-16-23-09-34.jpg 立即下载

typedef struct _node
{
	int data;
	struct _node *next;
}node;



1 在链表未尾插入一个结点

node *push_back(node **head, int value) {
	node *p = *head;
	if (NULL == head) return NULL;

	if (NULL == *head) {
		*head = apply();
		(*head)->data = value;
		return *head;
	}
	while (p->next) p = p->next;
	p->next = apply();
	p->next->data = value;
	return *head;
}
要注意对于头指针的处理。


2、删除一个找到的值

node *remove_node(node **head, int value) {
	node *p = *head, *front = NULL;
	if (NULL == p || NULL == head) return NULL;
	while (p && p->data != value) {
		front = p;
		p = p->next;
	}

	if (!p) return *head;

	if (front) front = p->next;
	else *head = p->next;

	free(p);
	return *head;
}

3 逆序输出链表

typedef struct _xnode {
	node *data;
	node *next;
}xnode;

void push(xnode **stack, node *p) {
	xnode *t = NULL;
	if (!stack) return;
	t = (xnode *) malloc(sizeof(xnode));
	if (!*stack) {
		(*stack) = t;
		(*stack)->data = p;
		(*stack)->next	 = NULL;
	} else { 
		t->data = p;
		t->next = *stack;
		(*stack) = t;
	}
}

node *pop(xnode **stack) {
	xnode *t = NULL;
	node *p = NULL;
	if (!stack || !(*stack)) return NULL;
	t = (*stack)->next;
	p = (*stack)->data;	
	free(*stack);
	*stack = t;
	return p;
}

void rprint(node *head) {
	xnode *stack = NULL;
	node *p = head;
	while (p) {
		push(&stack, p);
		p = p->next;
	}
	while ((p = pop(&stack))) {
		printf("->%d", p->data);
	}
}



研发流程后端开发工具,提示功能开发效率 后端开发工具 立即下载

相关推荐

机器人具有扰动抑制功能的有限时间基于方位角的领航者-跟随者编队控制(Matlab代码实现)

内容概要:本文档标题为《Plecs全桥LLC谐振变换器仿真模型.txt》,但实际内容并未涉及该主题的具体技术细节或仿真建模过程。相反,文档实质是一份由科研服务团队发布的跨学科资源目录,集中展示了大量基于Matlab、Simulink、Python、PSCAD等平台实现的科研项目与算法开发案例,涵盖电力系统、无人机路径规划、微电网优化、状态估计、信号处理、车间调度、图像处理、通信技术、雷达追踪、智能优化算法等多个工程技术领域。每个条目以“【】”标注研究主题,并注明“Matlab代码实现”“Python代码实现”等形式,表明其为可提供技术支持与代码资源的服务项目。文档末尾频繁出现“完整资源下载:公众号——荔枝科研社”及百度网盘链接,明确体现出其作为科研辅助服务推广与引流工具的功能属性。; 适合人群:面向电气工程、自动化、控制科学与工程、计算机科学、智能制造、新能源、航空航天、通信工程及相关交叉学科的研究生、高校教师、科研人员及企业研发工程师。; 使用场景及目标:①为科研人员提供课题选题、技术路线设计与算法实现的参考范例;②辅助学生或研究人员完成课程设计、毕业论文、项目仿真与算法复现任务;③作为第三方技术服务团队的能力展示目录,便于潜在客户快速了解其在多领域提供的定制化仿真与算法开发服务范围。; 阅读建议:此文档并非传统意义上的学术论文或技术教程,而是一份高度碎片化、广告性质浓厚的资源索引清单。读者应忽略其误导性的文件名,将其视为一个综合性科研技术服务目录,重点关注自身研究方向相关的条目,并通过文末提供的公众号或网盘链接进一步获取具体代码与资料。同时,需注意甄别资源的技术质量、原创性与适用性,避免盲目依赖外部服务。

面试题整理-最小没出现的整数

题目: #面试题#给定一个无序的整数数组,怎么找到第一个大于0,并且不在此数组的最小整数。比如[1,2,0] 返回 3, [3,4,-1,1] 返回 2。最好能O(1)空间和O(n)时间。 来源http://weibo.com/lirenchen。   解法: 直接考虑这个问题是比较困难的。不如先换个简单的问题。   问题1 给定一个数组,长度为n,除a[0]以外,其他元素都是a[

ju136的专栏 8760

科技中介服务机构如何打造高效、可复制的技术交易服务流程?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

面试题整理-大数求和

题意很简单,就是求两个任意整数之和。 原题在: http://acm.hdu.edu.cn/showproblem.php?pid=1002 首先说一下正确的思路: 第一步: 输入的处理: 如果输入是00000123344需要处理为123344。 函数为: string &_del_zeros_before_dot(string &a) { if (a.len

ju136的专栏 5117

高校技术转移办公室人员如何提升科研成果的市场推广与转化成功率?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

科研绘图实战:用Adobe Illustrator高效排版期刊论文图片

本文详细介绍了使用Adobe Illustrator高效排版科研论文图片的完整工作流。针对期刊投稿常见的图片格式问题,文章重点讲解了矢量图与位图的预处理、AI中的精准对齐与分布技巧、文字样式统一管理以及最终输出TIFF/PDF等符合出版要求的格式。掌握这套方法能确保图片满足高分辨率、规范字体和精确尺寸等期刊硬性标准,显著提升投稿效率。

tomato的博客 1435

面试题整理-斐波那契数列

这个很好。其实也就是f(0) = 0, f(1) = 1. 然后 f(n) = f(n-1) +  f(n-2); 测试链接 http://ac.jobdu.com/problem.php?cid=1039&pid=3 求解 #include #include long long a[71]; void init(void) { a[0] = 0; a[1] = a[

ju136的专栏 3826

LaTeX参考文献格式apsrev4-1,增加文献标题

APS的LaTeX参考文献格式apsrev4-1是隐藏标题的,如果想要出现标题,需要更改apsrev4-1.bst文件内容 在apsrev4-1.bst文件靠后部分,定义不同类型文献格式的地方,将article类型的内容替换为, FUNCTION {article} { output.bibitem format.authors booktitle empty$ { "author" output.check }{ output } if$ author format.

loading1234567的博客 5032

面试题整理-从数组中删除指定元素

题目: 陈利人:#Facebook面试题#这是一个编程题,动手做做才会有体会。给一个数组和一个值,从数组中删除这个指定的值的所有出现, 并且返回新的数组的长度。size_t remove_elem(T* array, size_t len, T elem) {}。 解题: 首先可以想到的是,用额外用一个数组。遇到不同的元素,就把此元素拷至额外的数组中。 实际上,很快就可以发现

ju136的专栏 3228

2025虚幻游戏逆向工程解包尝试

2025虚幻游戏逆向工程解包指南 本文详细介绍了虚幻引擎5游戏逆向解包的完整流程,主要包括获取AES密钥、生成映射文件和导出资源三个关键步骤。作者在实际操作中遇到诸多难题:AES密钥获取工具存在加壳保护问题,映射文件生成器依赖复杂的VS编译环境,DLL注入工具的使用也存在技术门槛。通过多次尝试,作者发现部分游戏可直接搜索现成的AES密钥,而映射文件生成需要额外下载Memcury依赖库才能正常编译。文章提供了相关工具的下载链接和具体操作说明,但同时也指出每个环节都可能出现意外状况,逆向工程实际执行过程远比理论

wsdchong的博客 6153

关于使用EB tresos出现无法激活的情况解决

我在安装eb studio时就是在激活方面有问题导致无法使用,下面讲解出现了什么问题以及我如何去解除的。EB安装完成时需要激活才能使用的,不然都打开或者建立不了工程,一直都是报的dns服务器错误,好的,那我改dns服务器地址。填写dns服务器地址,也可以换成别的,自己百度一下适合自己的。这是解决方案哈哈哈哈。

weixin_43673603的博客 6183

面试题整理-卡特兰数问题收集

首先说一下卡特兰数列, H(n) = C(n, 2n) / (n+1) = (2n)!/(n!n!(n+1)) H(3) = 5;   题目1: 矩阵的乘法添加括号我们知道,A*B可以,但是并不表示B*A也可以。假设有N+1个矩阵相乘,不能交换次序。只能用添加括号的方法来修改乘积的次序。那么有多少种添加括号的方法。 H(n)种。   题目2: 出栈次序问题,一个栈,其进栈的序列是

ju136的专栏 3003

【华为OD机试真题 2025B卷】662、静态扫描 | 机试真题+思路参考+代码解析(C++、Java、Py)(B卷复用)

【华为OD机试真题 2025B卷】662、静态扫描 | 机试真题+思路参考+代码解析(C++、Java、Py)(B卷复用) 华为od机试,华为od机试真题,华为od机试E卷,华为odE卷,华为od机试真题E卷,华为OD,华为OD机试,华为OD机试真题,华为od机考,华为od机试D卷,华为od机试真题D卷,华为od手撕代码,华为od,华为od机试C卷,华为od e卷,华为2024e卷,od机试,2024E卷,华为OD机试E卷,什么是华为od,华为od介绍,全面了解华为od,2024华为od,如何备战华为od

KJ.JK 5397

面试题整理-矩阵查找元素

需要在矩阵中查找元素。这个矩阵的排列如下: 每一行都是有序的。每一列都是有序的。 比如一个小矩阵。 10 30 20 80 现在,我们需要在一个这样N * M的矩阵中找到一个元素,并返回其位置。 思路 首先,这个题不太适合二分查找。因为并不能保证第二行的元素都一定比第一行的任意元素大。 所以应该是很难找到O(lgN)的算法。 每次都是取

ju136的专栏 2992

ROS从入门到精通0-1:教程导读

ROS概念太多太复杂?ROS从入门到精通系列订阅必看

FRIGIDWINTER的博客 1万+

【Unity 实用工具篇】 | Unity网格破碎插件 unity-fracture

前面写过一篇Unity中物体破碎效果的插件:【Unity 实用工具篇】 | Unity物体破碎效果 OpenFracture 本文介绍一个另外的工具unity-fracture,也可以实现网格破碎效果,且功能与OpenFracture略有差异。

努力前行,总会成为自己心中的那道光 1万+

面试题整理-台阶问题

原题   测试链接 http://ac.jobdu.com/problem.php?cid=1039&pid=4   首先我们考虑上面链接中提出的问题:由于一次只能走两步,那么在到达n步的上一步。其只能是要么在(n-1)个台阶上。要么是在(n-2)个台阶上。 所以我们可以得到fn = fn-1 + fn-2; f1 = 1; f2 = 2; 这里可以看出,同样也可以利用斐波那契数的

ju136的专栏 2732

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

面试题整理-数组做为平衡二叉树进行访问

题目: 现在有一个数组,是排好序的。如何将其按照平衡二叉树进行打印。需要按层次遍历。 思路很简单,就是需要确定一个算法去找左子结点与右子结点。 #include #include #include #include #include #include #include #include #include #include #include

ju136的专栏 2706

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

面试题整理-两个栈实现队列

题目 用两个栈实现队列。   解法 准备两个栈。一个是input, 一个是output。 1、入栈:直接用input.push() 2、出栈:如果output非空。则利用output出栈。                  如果output为空。则把input中的元素全部pop至output栈中。再利用output出栈。   说得简单一点就是从input栈进去,从ouput栈出去

ju136的专栏 2516

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

面试题整理-C++ 序列化对象

题目:在C++里面,两台机器之间的函数相互调用,需要传递对象。采用什么样的方法可以把C++对象序列化之后,在两台机器之间,像字符串一样传输。解法:想到boost库中是有一个序列化类的。在这里,我们直接利用这个类来进行处理。 #include #include #include #include #include using namespace std; class gps_posit

ju136的专栏 2472

面试题整理-整数的n次方

题意:求一个整数的正整数次方。

ju136的专栏 2203

面试题整理-重建二叉树

题目 根据输入的前序遍历和中序遍历。重建一棵二叉树。 解法: 其实求解很简单。关键在于求出长度。假设函数的形式如同: template node *build(const T *pre, const T *mid, const int n); 那么pre[0]肯定是树的根,可以把中序遍历分为两部分。 一部分长度为A,另外一个长度为B。 那么pre的构成则是。pre[0]--

ju136的专栏 2164

面试题整理-合并数组

题意: 需要将A,B两个已排序数组合并至A数组中,假设A数组中的空间是够用的。那么请写这么一个合并函数。 当然,最后的结果也一定是有序的。 解题: 很好写。直接从后面开始向前合并 #include #include #include int a[4096]; int b[4096]; int _cmp(const void *a, const vo

ju136的专栏 2137

面试题整理-链表形式大数求和

两个整数,每位的十进制表示都放到链表中,不过是倒序的,需要求出其结果。 原题如下: Add Two Numbers You are given two linked lists representing two non-negative numbers. The digits are stored in reverse order and each of their nodes cont

ju136的专栏 2130
上一篇: 面试题整理-合并数组
下一篇: 面试题整理-重建二叉树
ju136
博客等级 码龄19年 95粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值