链表基础

链表

1、单链表

1、对于单链表来说。要删除一个节点就需要找这个节点的前一个节点啊

2、让pre.next = temp.next这样才能有用

3、还得注意不能移动头节点啊

2、构建链表

1、对于单链表来说,无论是什么操作,都要找到要操作的节点的前一个节点

2、还有基本结构,就是Node对象创建、value的值还有next的指针。

3、一般我们会构建一个前驱节点dummyHead,这个节点是在head的前一个节点

4、主要是方便我们对链表的添加、修改、还有删除。

5、因为单链表中我们需要,找到需要修改的节点的前一个节点才会有效果

3、反转链表

1、使用双指针解法

1、创建pre和cur

2、pre在cur前面,然后创建一个temp临时存储cur,为了后面的移动和找到下一个节点

3、图示

image-20231109105848559

2、使用递归的解法

image-20231109122220569

3、删除指定列表

image-20231112225449301

4、判断环形链表

1、题目142力扣
2、使用快慢指针

1、就是快指针移动两步,慢指针移动一步,如果有环形链表,他们始终会相遇

2、这就意味着,从头结点出发一个指针,从相遇节点 也出发一个指针,这两个指针每次只走一个节点, 那么当这两个指针相遇的时候就是 环形入口的节点

3、图解

image-20231114195740508

3、使用哈希表

1、建立一个Set哈希表,不会重复

2、遍历循环,如果temp.next节点不为空

3、查看哈希表中是否有值,如果有,就遍历,没有就添加

4、然后temp往后移。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇