【C语言】单链表相关面试题(二)

1014. 福尔摩斯的约会 (20)-PAT乙级真题 1014. 福尔摩斯的约会 (20) 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧!3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’ 阅读详情

上篇博客介绍了查询链表中间结点,删除非尾结点,逆序链表三个问题。

有兴趣可点击链接查看:单链表相关面试题(一)

此篇博客将介绍:

1.删除倒数第k个结点(k>1)

2.合并两个有序链表

3.判断链表是否带环,若带环求环的长度,找出环的入口点

4.判断两条链表是否相交,相交则求出交点。

一、删除倒数第k个结点

1.算法思路:

        仍然通过设置快慢指针的方法解决,快指针每走一步,让k--,当k<0的时候,让慢指针也开始走,这样,当快指针走到链表尾部的时候,慢指针刚好指向倒数第k个结点。最后删除慢指针指向的那个结点。简单来说就是,让快指针先走k部,慢指针再开始走,这样快慢指针之间总是相差k步,所以,快指针指向空时,慢指针离空k个结点,即慢指针指向倒数第k个结点。

2.代码实现:

void DelKNode(pLinkList pList, int k)
{
	assert(pList);
	assert(k > 1);
	if (pList->pHead == NULL)
	{
		return;
	}
	pLinkNode fast = pList->pHead;
	pLinkNode slow = pList->pHead;
	while (fast)
	{
		k--;
		if (k < 0)
		{
			slow = slow->next;
		}
		fast = fast->next;

	}
	if (k<=0)              //为了防止给进去的k不符合要求,超过链表的总长
	{
		pLinkNode del = NULL;
		del = slow->next;
		slow->data = del->data;
		slow->next = del->next;
		free(del);
		del = NULL;
	}
}

3.测试

test9()
{
	LinkList list;
	InitLinkList(&list);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PushBack(&list, 6);  //构建链表1->2->3->4->5->6
	PrintList(&list);
	DelKNode(&list, 5);   //删除倒数第5个结点
	PrintList(&list);
}

4.测试结果



二、合并两个有序链表

1.算法思路:

假设顺序是由小到大,先考虑异常情况,当其中一条链表为空则返回另外一条链表。当两条链表都不为空的时候,设置新的头结点,比较两条链表第一个结点的数据域大小,让新的头结点指向数据域小的结点,且用来遍历此条链表的结点指针向后移。接下来循环比较两条链表里的数据域,让新链表的尾结点的指针域指向较小的结点。直到其中一条链表指向空,则让新的链表的尾指针的指针域指向用来另外一条链表的当前指针。可能文字描述不太能懂,我们画图说明一下。



2.代码实现:

pLinkNode merge(pLinkNode list1, pLinkNode list2)
{
	pLinkNode Newhead = NULL;
	pLinkNode Tail = NULL;
	pLinkNode cur1 = list1;
	pLinkNode cur2 = list2;
	if (list1 == NULL)
	{
		return list2;
	}
	else if (list2 == NULL)
	{
		return list2;
	}
	else
	{
		if (cur1->data > cur2->data)
		{
			Newhead = cur2;
			cur2 = cur2->next;
		}
		else
		{
			Newhead = cur1;
			cur1 = cur1->next;
		}
		Tail = Newhead;
		while (cur1&&cur2)
		{
			if (cur1->data > cur2->data)
			{
				Tail->next = cur2;
				cur2 = cur2->next;
				Tail = Tail->next;
			}
			else
			{
				Tail->next = cur1;
				cur1 = cur1->next;
				Tail = Tail->next;
			}
		}
		if (cur1)
		{
			Tail->next = cur1;
		}
		else if (cur2)
		{
			Tail->next = cur2;
		}
	}
	return Newhead;
}

3.测试

test10()
{
	LinkList list;  //构建两个链表
	LinkList list1;
	LinkList list2;  
	pLinkNode ret = NULL;
	pLinkNode l1 = NULL;
	pLinkNode l2 = NULL;
	InitLinkList(&list);
	InitLinkList(&list1);
	InitLinkList(&list2);
	PushBack(&list, 1);
	PushBack(&list, 3);
	PushBack(&list, 5);
	PushBack(&list, 7);
	PushBack(&list1, 2);
	PushBack(&list1, 4);
	PushBack(&list1, 6);
	PrintList(&list);
	PrintList(&list1);
	l1 = list.pHead;
	l2 = list1.pHead;
	list2.pHead= merge(l1, l2);<span style="font-family: Arial, Helvetica, sans-serif;">//接收新的头结点</span>
	PrintList(&list2);
	DestroyList(&list);
	DestroyList(&list1);
	DestroyList(&list2);
}

4.测试结果



三、判断链表是否带环,若带环求环的长度,找出环的入口点

1.算法思路:

设置快慢指针,快指针每次走两步,慢指针每次走一步,若链表带环,则快慢指针一定会在环上相遇,我们返回相遇点,若不带环,则快指针或者其指针域会为空,此时我们返回空。
如何计算环的长度:从相遇点遍历一遍,通过计数器获得环的长度。
找环的入口点:

2.代码实现:

pLinkNode CheckCycle(pLinkList pList);  //判断链表是否带环
int GetCircleLength(pLinkNode meet);  //若带环求环的长度
pLinkNode FindEntryNode(pLinkList pList, pLinkNode meet);//找出环的入口点
pLinkNode CheckCycle(pLinkList pList)
{
	assert(pList);
	pLinkNode fast = pList->pHead;
	pLinkNode slow = pList->pHead;
	while(fast&&fast->next)
	{
		slow = slow->next;
		fast = fast->next->next;
		if (fast == slow)
		{
			return slow;
		}
	}
	return NULL;
}
int GetCircleLength(pLinkNode meet)
{
	assert(meet);
	int count = 1;
	pLinkNode cur = meet->next;
	while (cur != meet)
	{
		count++;
		cur = cur->next;
	}
	return count;
}

pLinkNode FindEntryNode(pLinkList pList, pLinkNode meet)
{
	assert(pList);
	pLinkNode cur = pList->pHead;
	while (cur != meet)
	{
		cur = cur->next;
		meet = meet->next;
	}
	return cur;
}

3.测试

 void test11()
{
	LinkList list;
	int length=0;
	pLinkNode ret = NULL;
	pLinkNode meet = NULL;
	pLinkNode entry= NULL;
	InitLinkList(&list);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PushBack(&list, 6);
	ret = Find(&list, 6);   //构造环
	ret->next = Find(&list, 3);  //尾指针域指向3,则环的入口点应该为3
	meet=CheckCycle(&list);
	if (ret = NULL)
	{
		printf("链表不带环");
	}
	else
	{
		length = GetCircleLength(meet);
		printf("环长%d\n", length);
		entry = FindEntryNode(&list, meet);
		printf("入口点为:%d", entry->data);
	}
	DestroyList(&list);
}

4.测试结果



四、判断两条链表是否相交,相交则求出交点。

1.算法思路:

链表是否相交分为以下几种情况来讨论:
1>链表不带环,不带环时相交,只要遍历两条链表,判断两条链表的尾结点是否相同,相同则说明相交,不同则不相交。相交时,通过计数器的方法求出两条链表的长度,让长的那条链表先走长度的差值个结点,然后指向两条链表指针同时向后遍历,指针相等的时候就是交点。
2>一条带环一条不带环,此种情况一定不相交。
3>两条链表都带环。调用之前的判断链表是否带环函数,判断两条链表的相遇点是否在一个环上,若不在,则不相交,在一个环上则说明相交。相交时,从环上的任意一点断开。参照不带环相交的情况求出相交点。

2.代码实现:

pLinkNode CheckCross(pLinkList list1, pLinkList list2)
{
	int count1 = 1;
	int count2 = 1;
	pLinkNode tmp1 = CheckCycle(list1);//调用现有函数检测链表是否带环
	pLinkNode tmp2 = CheckCycle(list2);
	if (tmp1 == NULL && tmp2 == NULL)  //两条链表都不带环
	{
		pLinkNode cur1 = list1->pHead;
		pLinkNode cur2 = list2->pHead;
		pLinkNode pcur1 = list1->pHead;
		pLinkNode pcur2 = list2->pHead;
		while (cur1->next)
		{
			cur1 = cur1->next;
			count1++;
		}
		while (cur2->next)
		{
			cur2 = cur2->next;
			count2++;
		}
		if (cur1 == cur2)   //链表相交,求交点
		{
			int ret = count1 - count2;
			if (ret > 0)
			{
				while (ret--)
				{
					pcur1 = pcur1->next;
				}
			}
			else
			{
				ret = (int)fabs(ret);
				while (ret--)
				{
					pcur2 = pcur2->next;
				}
			}
			while (pcur1 != pcur2)
			{
				pcur1 = pcur1->next; //1 2 3 4 5 6  // 2 4 6 8 10 2 3 4 5 6
				pcur2 = pcur2->next;
			}
			return pcur1;
		}
		else
			return NULL;
	}
	else if (tmp1 != NULL && tmp2 != NULL)  //两条链表都带环
	{
		pLinkNode cur1 = list1->pHead;
		pLinkNode cur2 = list2->pHead;
		
		int length1 = GetCircleLength(tmp1);
		int length2 = GetCircleLength(tmp2);
		if (length1 != length2)
		{
			return NULL;
		}
		else
		{
			pLinkNode pcur1 = list1->pHead;
			pLinkNode pcur2 = list2->pHead;
			while (--length1)
			{
				if (tmp1 == tmp2)    //链表相交
				{
					tmp2->next = NULL;
					int count1 = 0;
					int count2 = 0;
					while (cur1)
					{
						cur1 = cur1->next;
						count1++;
					}
					while (cur2)
					{
						cur2 = cur2->next;
						count2++;
					}
					int ret = count1 - count2;
					if (ret > 0)
					{
						while (ret--)
						{
							pcur1 = pcur1->next;
						}
						while (pcur1 != pcur2)
						{
							pcur1 = pcur1->next;
							pcur2 = pcur2->next;
						}
						return pcur1;
					}
					else
					{
						ret = (int)fabs(ret);
						while (ret--)
						{
							pcur2 = pcur2->next;
						}
						while (pcur1 != pcur2)
						{
							pcur1 = pcur1->next;
							pcur2 = pcur2->next;
						}
						return pcur1;
					}
					break;
				}
			tmp1 = tmp1->next;
			}
			if (length1 == 0)
			{
				return NULL;
			}
		}
	}
    return NULL;
}

3.测试

void test12()
{

	LinkList list;
	LinkList list1;
	pLinkNode ret = NULL;
	pLinkNode ret1 = NULL;
	pLinkNode meet = NULL;
	InitLinkList(&list);
	InitLinkList(&list1);
	PushBack(&list, 1);
	PushBack(&list, 2);
	PushBack(&list, 3);
	PushBack(&list, 4);
	PushBack(&list, 5);
	PushBack(&list, 6);
	PushBack(&list1, 2);
	PushBack(&list1, 4);
	PushBack(&list1, 6);
	PushBack(&list1, 8);
	PushBack(&list1, 10);
	ret = Find(&list, 6);
	ret->next = Find(&list, 3);  //构建环
	ret1 = Find(&list1, 10);
	ret1->next = Find(&list, 2);//设置相交
	meet = CheckCross(&list, &list1);
	if (meet != NULL)
	{
		printf("交点是%d", meet->data);
	}
	else
	{
		printf("不相交");
	}
}

4.测试结果


本文测试用例都调用了链表基础操作里的某些函数。若对此有疑惑的亲可参考博文: 单链表的基本操作

GitHub 国内加速完全指南(最新):镜像、代理与优化技巧 在国内使用 GitHub 时,经常遇到 clone 慢、打开仓库卡、GitHub Actions 不稳定 等问题。下面是整理好的 GitHub 国内镜像和加速方法大全,高效使用 GitHub。 阅读详情

相关推荐

单片机按键识别篇---单击---双击----长按

  最近做一任务需要使用一个按键实现三种功能,分别是按键单击功能,按键双击功能和按键长按功能,可能之前没有接触过这类按键复用情况,顶多也只是简单识别单击和长按,没有想过双击以上按键功能,也是绞尽脑汁,想了半天,又上网看了些例程,算是对于按键的识别有点小小的了解,感觉这个功能挺实用,在此做个随笔。 一、思路   1.识别长按操作思路:我们使用系统定时器定时,然后让系统每过一段时间去扫描按键I/O...

weixin_30311605的博客 3660

链表常见面试题C/C++

链表 文章目录链表1. 链表反转题目思路代码2. 链表反转(部分反转)题目思路代码3. 链表交点题目思路方法1方法2代码3.环形链表交点题目思路代码4. 复杂链表复制题目思路方法1方法2代码5.两个排序链表的合并题目 (Leetcode21)思路代码6.K个排序链表合并题目 (Leetcode23)思路代码 leetcode部分链表题目笔记 1. 链表反转 题目 反转一个单链表。 示例:输入: ...

zhangsy_csdn的博客 3150

保姆级教程:在Ubuntu 20.04上从源码编译Apollo自动驾驶平台(含GPU环境配置)

本文提供了一份详细的Ubuntu 20.04上从源码编译Apollo自动驾驶平台的保姆级教程,包括GPU环境配置、Docker部署和编译构建等关键步骤。通过实战经验和避坑指南,帮助开发者高效完成Apollo平台的编译和验证,适用于自动驾驶技术研究和应用开发。

weixin_30876945的博客 409

C语言单链表的实现及其面试题—完整代码

相关博客链接: C语言实现 单向链表 https://blog.youkuaiyun.com/qq_37941471/article/details/72961495 C语言实现单链表面试题—基础篇 https://blog.youkuaiyun.com/qq_37941471/article/details/78033970 C语言实现单链表面试题—进阶 https://blog.youkuaiyun.com/q...

qq_37941471的博客 3189

halcon算子翻译——connection

算子:connection(Region : ConnectedRegions : : ) 功能:分离一个区域中相连接的部分(变成多个区域)。 输入参数: Region:输入一个区域; 输出参数: ConnectedRegions: ———————————————— 版权声明:本文为优快云博主「机器人自动化控制」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.youkuaiyun.com/haier123888/article/details/1

haier123888的博客 4829

8、内存交织技术详解

本文详细解析了内存交织技术的基本原理、工作机制及实现方式,探讨了其在提升内存访问速度和系统性能中的关键作用。文章还分析了内存交织的优缺点、实际应用场景以及与其他优化技术的结合应用,并提出了未来发展的可能方向,为理解与运用该技术提供了全面参考。

g9h0i1的博客 551

C语言链表面试题

SeqList.h#pragma once #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;string.h&gt; #include&lt;assert.h&gt; typedef int DataType; typedef struct Node { struct Node* next; DataType Data;...

baidu_37964044的博客 340

福建公共资源交易平台 portal-sign与响应Data解密逆向实录

本文分析了福建公共资源交易电子公共服务平台的接口加密机制。通过抓包和代码分析,发现请求头中的portal-sign由MD5算法生成,包含固定秘钥和排序后的参数拼接。响应数据采用AES-256-CBC加密,需使用特定Key和IV解密。文章详细介绍了签名生成规则、参数处理流程及加密常量定位方法,为接口对接提供了技术参考。整个过程展示了如何通过逆向工程还原前端加密逻辑,最终实现脱离浏览器环境的纯协议调用。

自成背后的博客 1159

链表常见面试题-C语言实现

前面的博客已经介绍过了实现链表的一些相关的功能,所以在这里就不对链表多加解释说明了。 对于链表相关面试题这里解释几个有特点的题: 1.对于求查找链表的中间结点,要求只能遍历一次链表? 方式:使用两个指针,一个快指针,一个慢指针,快指针走两步慢指针走一步,这样当快指针指向结尾空指针的时候,慢指针刚好指向中间结点。 图示: 2.查找链表倒数第K个结点要求只能遍历一次链表? 方式:同

IT_iverson的博客 8718

【图像去噪】基于梯度为0法实现图像去噪附matlab代码

近几年,徐立提出的 L0 梯度最小化模型在图像平滑领域得到了广泛的应用和发展[11]. 和以往的局部滤波模型不同的是该模型可以全局的估计图像的像素值,因此,L0 梯度最小化模型在处理图像的同时能够很好的保护图像的边缘.​。

qq_59747472的博客 186

C#上位机部署YOLO模型:ONNX转换+推理加速+内存优化全攻略

本文针对C#上位机部署YOLO模型的三大痛点,提供从模型转换到优化部署的完整解决方案。首先介绍将YOLO模型转换为ONNX格式的必要性和方法,包括自动和手动两种转换方案及常见问题解决。然后详细讲解C#环境配置和基础部署流程,包括图像预处理、模型加载、推理计算和结果解析。最后提出推理加速和内存优化策略,通过硬件适配、多线程处理和资源复用等技术手段,实现工业场景下的高效稳定运行。全文提供可直接复用的代码片段和实测验证方案,覆盖YOLOv5/v7/v8全版本,帮助开发者快速实现轻量化部署。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 786

链表的相关面试题(完整)(C语言)

链表的相关面试题 我这里是单链表,并且带头结点,其实我感觉带不带头结点都无所谓了。只要思路是正确的,那么代码实现起来相对简单。 链表的基本操作 我的头文件中的一些定义 #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; #include&lt;assert.h&gt; typedef int DataType; #define M...

一条二哈 529

【华为OD】华为性格测试(综合测试)高分策略

1、性格测试非常重要,是一次否决制,18 个月有效期,所以态度一定要认真对待,不要随便乱选;2、做题原则:正向原则,积极乐观向上3、时间为 25-30 分钟,会频繁出现重复选项重复出现的题目注意一致性。

笑着的程序员的博客 3万+

测试一个链表是否为空表 C语言,【C语言】单链表相关面试题(二)

上篇博客介绍了查询链表中间结点,删除非尾结点,逆序链表三个问题。有兴趣可点击链接查看:单链表相关面试题(一)此篇博客将介绍:1.删除倒数第k个结点(k>1)2.合并两个有序链表3.判断链表是否带环,若带环求环的长度,找出环的入口点4.判断两条链表是否相交,相交则求出交点。一、删除倒数第k个结点1.算法思路:仍然通过设置快慢指针的方法解决,快指针每走一步,让k--,当k<0的时候,让慢指...

weixin_39754411的博客 448

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

android 蓝牙通讯demo

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

单链表的实现和相关面试题及其详解(C语言)

链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的链接次序实现的 链表 链表 链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。 每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。

半暖的博客 625

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C语言实现无头单链表及链表相关面试题(重点!)

链表通常是面试中的重点,本文是用C语言写一个无头单链表,并介绍它的相关面试题的解法。 其中涉及到的面试题如下: 1. 比较顺序表和链表的优缺点,说说它们分别在什么场景下使用? 顺序表:内存中地址连续 长度不可变更 支持随机查找 可以在O(1)内查找元素 适用于需要大量访问元素的 而少量增添/删除元素的程

ChaseRaod的博客 1064

蓝牙模块HM-10手册

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

无序单链表排序算法(c语言版本)

这是一道非常经典的面试题。我们知道,快速排序的思想是,通过一个基准元素(pivot),一趟排序就将数据划分为两个部分:左边的部分小于该基准元素,右边的部分大于该基准元素。另外,实现快速排序的关键在于随机访问数据元素,所以快速排序通常都是基于数组来实现的,但是面试中往往会要求对无序单链表进行快排,这就明显不能使用快速排序的基本思想,因为从链表尾部无法向链表头部遍历。 解决方法还是基于快速排序思想,...

雪峰流云 7357

关于单链表的一些面试题-进阶篇(C语言实现)

关于单链表的一些面试题-进阶篇(C语言实现)

JS_Evey的博客 648

【C语言】单链表相关面试题(一)

先前已经写过一些单链表的基本操作:单链表的基本操作(若有兴趣可先看看链表的基本操作) 这次链表相关的面试题是建立在这个之上写的,测试的时候会调用的其中的一些函数。 今天主要说以下几个常见的链表面试题 1.查询链表中间结点 2.只给出一个位置,删除非尾结点 3.逆序链表       查询链表的中间结点,我们知道,单链表只能顺序访问,那么怎么查找中间结点呢?你可能会

pointer_y的博客 901

C语言对单链表所有操作与一些相关面试题

/ 声明并定义个单链表结构体int val;//数据 成员变量//结构体调用自己的类型}ListNode;

CHNIM的博客 837

学习c语言:单链表的应用

单链表OJ题

guoguoqianng.的博客 1174

单链表相关面试题(C语言实现)

在这里给出一些关于单链表常见的面试题。一、 给定单链表,检测是否有环。1.题目分析仔细读题目发现还是有难度的,很多人刚开始会理解成就是判断一个单链表是否为循环链表,这样的理解是错的。题目的意思是指给出一条单链表,判断其中是否含有环,如“6”字型单链表就含有环。 明白题目意思以后我们来说明解题思路,假设给定的单链表中有n个节点,我们可以利用两个指针fast和slow来求解问题。fast指针每次走两步,

kang___xi的博客 567

linux c语言常见面试题及答案,Linux下C语言的几道经典面试题小结(分享)

Linux下C语言的几道经典面试题小结(分享)本篇文章整理了几道Linux下C语言的经典面试题,相信对大家更好的理解Linux下的C语言会有很大的帮助,欢迎大家探讨指正。1、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?答案如下:2、C语言程序不使用任何条件运算符,打印出十次"Hello"?答案如下:或是:3、如果在Linux下使用GCC编译器执行下列程序,输出结果是什么?答案如...

weixin_30424427的博客 2429

c语言pop逆置单链表,C语言实现单链表

实现单链表的以下操作:list.h:#ifndef __LIST_H__#define __LIST_H__#include #include #include typedef int DataType;typedef struct Node{DataType _data;struct Node *_pNext;}Node,*pNode;// 初始化单链表void InitList(pNode* ...

weixin_32243309的博客 229

链表常见面试题-c语言实现,单链表相关面试题(C语言实现)

在这里给出一些关于单链表常见的面试题。一、 给定单链表,检测是否有环。1.题目分析仔细读题目发现还是有难度的,很多人刚开始会理解成就是判断一个单链表是否为循环链表,这样的理解是错的。题目的意思是指给出一条单链表,判断其中是否含有环,如“6”字型单链表就含有环。明白题目意思以后我们来说明解题思路,假设给定的单链表中有n个节点,我们可以利用两个指针fast和slow来求解问题。fast指针每次走两步,...

weixin_31739613的博客 504

删除单链表中的重复节点(c语言版本)

这是一道经典的面试题,下面是我的研究和举一反三,特整理如下: 分为三种情形: (1)删除有序链表的重复节点,重复节点一个都不留 (2)删除有序链表的重复节点,重复节点只留一个 (3)删除无序链表的重复节点,重复节点只留一个 下面是相关节点的定义: typedef struct ListNode { int val; struct ListNode *next; ...

雪峰流云 1万+
上一篇: 【C语言】单链表相关面试题(一)
下一篇: 【C++】命名空间
pointer_y
博客等级 码龄11年 157粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值