链表
文章平均质量分 76
Ischanged
接受平凡。
展开
-
实现双向链表(带傀儡节点)
引言在之前的博文中,我简单的向大家分享了一些链表相关的知识及一些面试题,如果感兴趣的老铁可以去瞧瞧,今天做题遇到要实现带傀儡节点的双向链表,做了下,之前的单向链表中我们也遇到要设置傀儡节点(哨兵节点的题),今天我们就来看一下实现双向链表(带傀儡节点)。基本思路对于链表没说带傀儡节点或者虚拟节点,这个链表没有真正的头结点,但是我们把第一个节点叫做头结点,它起到标识的作用,标识这个链表的头结点这个头结点的位置随时可能发生这变化,是不固定的,之后通过这个头结点我们要完成一些链表的增删查改。如果带傀儡节点这原创 2021-09-23 21:27:18 · 692 阅读 · 20 评论 -
双向链表的实现(双向链表与单向链表的简单区别联系和实现)
前言单向链表和双向链表的优缺点及使用场景双向链表的简单实现及图示分析前言之前写了一些文章简单地介绍顺序表,链表的基础知识,还总结了几道链表的笔试题,今天继续开干,向老铁们简单地介绍一下无头双向循环链表及其代码的实现。为什么要引入无头双向循环链表呢?????我们可以简单地这样去思考,单向链表只能单向地从头节点去访问其他的节点,不能会退的访问其他的节点,也不能循环地访问,与单向链表不同,双向链表在插入删除的时候不需要寻找前驱节点,因为本身就能回到前面一个节点,**查找时,我们可以用二分发的思路,从首节.原创 2021-09-04 22:33:09 · 652 阅读 · 12 评论 -
链表经典面试题(反转链表,中间节点,倒数第k个节点,合并分割链表,删除重复节点)
这里写目录标题反转一个单链表。返回链表的中间结点输入一个链表,输出该链表中倒数第k个结点将两个有序链表合并为一个新的有序链表并返回。以给定值x为基准将链表分割成两部分在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点反转一个单链表。题目描述反转很好理解,就是我们生活中所说的颠倒,反转后原来链表的头节点变成尾结点,尾结点变成头节点,链表内容的顺序相反就行了。基本思路好理解的双指针(c里面的是指针,java里面是引用变量)定义两个指针: pre和 cur ;pre在前 cur在后,pr原创 2021-08-26 11:37:12 · 1526 阅读 · 29 评论 -
旋转链表(图解说明)
Leetcode题目描述:题目链接:旋转链表题目很简洁,就是移动节点,但其中有隐含的意思,要将链表的每个节点向右移动,使每个节点在新的位置,由于尾结点后面没有了节点,要移动就要形成环,所有的节点在环里面转,移动完后又把环断开,形成新的链表。方法:环形链表+移动基本思路:计算链表长度len,因为在求长度的时候我们顺带找了链表的最后一个节点,最后一个节点的长度没算,所以len的起始值为1.2.观察发现对链表的操作每len次循环一次,计算k % len可有效减少操作链表的次数(如果链表长度为3,你原创 2021-08-23 19:13:13 · 1056 阅读 · 7 评论