🌈个人主页:聆风吟🔥系列专栏:数据结构、算法模板🔖少年有梦不应止于心动,更要付诸行动。文章目录📋前言一.⛳️链表的中间结点二.⛳️链表中倒数第k个结点📝结语📋前言 💬hello!小伙伴们大家好哇,今天作者给大家带来的是链表的相关面试题的讲解,在学习了下文之后,相信大家可以更好的理解链表,并且我们同过本文的练习相信大家对快慢双指针也将会有一定的了解。 📚系列专栏:本期文章收录在《剑指offer每日一练》,大家有兴趣可以浏览和关注,后面将会有更多精彩内容! 🎉欢迎大家关注🔍点赞👍收藏⭐️留言📝!一.⛳️链表的中间结点⌈在线OJ链接,可以转至此处自行练习⌋题目:给你单链表的头结点h
前言:本篇博客将讲解三个OJ题,前两个作为铺垫,最后完成环形链表的节点的寻找文章目录一、160.相交链表二、141.环形链表三、142.环形链表II一、160.相交链表题目链接:LeetCode—相交链表题目描述:给你两个单链表的头节点headA和headB,请你找出并返回两个单链表相交的起始节点。如果两个链表不存在相交节点,返回null。图示两个链表在节点c1开始相交:注意,函数返回结果后,链表必须保持其原始结构。评测系统将根据这些输入创建链式数据结构,并将两个头节点headA和headB传递给你的程序。如果程序能够正确返回相交节点,那么你的解决方案将被视作正确答案。示例1:输入:inter
LeetCode|19.删除链表的倒数第N个结点OJ链接思路:定义虚拟头节点dummy并初始化使其指向head然后定义快慢指针让快指针先走n步然后一起走最后删除倒数第n个节点然后释放虚拟节点dummystructListNode*removeNthFromEnd(structListNode*head,intn){//定义虚拟头节点dummy并初始化使其指向headstructListNode*dummy=malloc(sizeof(structListNode));dummy->val=0;dummy->next=head;//定义fastslow双指针structListNode*fast
文章目录🍉前言🍉题目🍉分析🍉思路一:暴力解法🍉思路二:很绝的办法🍉前言果然,力扣的简单题不一定简单,但是中等和较难的题一定很麻烦。这道题相当综合,对于思路二,如果看完思路后能写出代码,那说明你链表掌握得相当熟练了。🍉题目题目链接🍉分析题干很长,不过总结下来就很简单的几句话:有一链表,它每个节点除了有next,还有个random指针,random指向哪里?不知道,可能是其他节点,也可能指向NULL。然后现在要你对这样一个链表进行拷贝,得到一个新链表,新链表中每个节点random的指向和原链表一模一样。🍉思路一:暴力解法先复制原链表,但不复制random指针,得到一个新链表。接下来要复制rando
前言随机链表的复制涉及到复制一个链表,该链表不仅包含普通的next指针,还包含random指针,该指针指向链表中的任意节点或空节点。文章目录原地修改链表题目链接:LeetCode138.随机链表的复制原地修改链表题目介绍:给你一个长度为n的链表,每个节点包含一个额外增加的随机指针random,该指针可以指向链表中的任何节点或空节点。构造这个链表的深拷贝。深拷贝应该正好由n个全新节点组成,其中每个新节点的值都设为其对应的原节点的值。新节点的next指针和random指针也都应指向复制链表中的新节点,并使原链表和复制链表中的这些指针能够表示相同的链表状态。复制链表中的指针都不应指向原链表中的节点。
个人主页:点我进入主页专栏分类:C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶C语言刷题 数据结构初阶欢迎大家点赞,评论,收藏。一起努力,一起奔赴大厂。目录1.前言2.带头双向循环链表函数实现3.总结1.前言 在前面我们写过单链表,循环链表的博客,今天我主要给大家来带关于双向带头循环链表函数的功能与实现,双向带头循环链表相对于单链表,循环链表非常的容易实现,他的函数的功能和单链表,循环链表一样,如果你想要快速实现一个链表的所有功能,带头双向循环链表非常的容易,接下来让我们看看带头双向链表的奥妙把,看完你绝对会佩服写出这种结构的人。2.带头双向循环
目录1.创建表结构2.创建表3.打印链表4.查找功能的实现 5.插入功能的实现6.删除功能的实现 7.修改功能的实现 8.计数功能的实现 9.排序功能的实现 10.封装图书信息管理系统1.创建表结构创建书籍信息结构体和每个结点的结构体structBook{ charid[20];//ISBN charname[50];//书名 intprice;//定价};//创建书籍信息结构体typedefstructLNode{ structBookdata;//书籍信息结构体 structLNode*next;//指向下一元素指针}LNode,*LinkList;2.创建表前插法创建单链表,建立n
🍉题目题目链接🍉解析“提示”部分有提示链表数不为零,所以讨论链表为空的情况。最简单粗暴的思路就是:遍历链表,先使用循环遍历A链表,然后嵌套循环遍历B,比对A、B是否存在地址相同的节点,若有,则第一个这样的节点就是相交的起点。这里的思路就是比对地址,我们不能比较节点值是否相等,毕竟不同节点的值可以相等但是这样的时间复杂度为O(N^2),显然不是最优解法。下面来看比较好的解法。知道大思路是比较地址相不相等之后,还有一个问题:两个链表的长度不一样。这个问题倒是不难解决,我们直接让长的链表先走,它比短的链表多几个节点,就先走几个节点,既然如此,那先来获取链表长度吧。intlen1=0,len2=0;L
文章目录节点设置二叉树的深度优先遍历前序遍历中序遍历后序遍历二叉树的广度优先遍历层序遍历节点的个数叶子节点的个数第K层节点的个数值为X的节点树的最大深度翻转二叉树判断两颗二叉树是否相同判断二叉树是否是完全二叉树判断二叉树是否是单值二叉树判断二叉树是否是平衡二叉树判断二叉树是否是对称二叉树判断一棵二叉树是否是另一棵二叉树的子树二叉树的销毁二叉树的深度遍历(接口型题目)前序遍历中序遍历后序遍历二叉树的构建及遍历本文是对二叉树这种数据结构基本操作与部分练习题的总结,内容庞大、详细、易懂,是你学习路上不容错过的优质博客!节点设置既然是链式二叉树,那必须得有自己的结点类型,以下是链式二叉树结点类型的定义
目录前言🌳1.链表中倒数第k个结点🌸1.1思路1.2代码2. 链表的回文结构🪸2.1思路2.2代码3.相交链表🌪️3.1思路3.2代码4.环形链表I🌊🛳️4.1思路4.2代码4--->5过渡:拓展思考🧐💭5.环形链表II🏥🚑5.1思路5.2代码6.随机链表的复制👊🤡6.1思路编辑6.2代码后语🍻前言🌳之前,我们已经将链表部分的知识了解学习的差不多了,那么没有题目来练练手算个什么事⁉️必需给大家安排上,小江优选---保质又保量‼️1.链表中倒数第k个结点🌸链表中倒数第k个结点_牛客题霸_牛客网1.1思路忘记之前的题目的同学,可以看看这篇博客:学习笔记---看完就会的单链表的应用~