单链表的删操作

第一种情况:在链表中删除一个节点,删除一个节点,首先要找到要被删除节点的前驱节点,然后把这个前驱节点的 next指针指向被删除节点的下一个节点。这样就能把被删除节点从链表中摘除了。

Go 复制代码
//还是先创建一条单链表
head := createLinkedList([]int{1,2,3,4,5})

//删除第四个节点,首先找到前驱节点
p := head
for i := 0; i < 2; i++ {
p = p.next
}

p.next = p.next.next

第二种情况:在单链表尾部删除元素

Go 复制代码
// 创建一条单链表
head := createLinkedList([]int{1, 2, 3, 4, 5})

// 删除尾节点
p := head
// 找到倒数第二个节点
for p.next.next != nil {
    p = p.next
}

// 此时 p 指向倒数第二个节点
// 把尾节点从链表中摘除
p.next = nil

第三种情况:在单链表头部删除元素

Go 复制代码
// 创建一条单链表
head := createLinkedList([]int{1, 2, 3, 4, 5})

// 删除头结点
head = head.Next

// 现在链表变成了 2 -> 3 -> 4 -> 5
相关推荐
lisw052 分钟前
分岔论揭示演化突变密码
开发语言·算法·数学建模
aqiu11111110 分钟前
C++ TopK:使用 nth_element 快速求最小 K 个数(蓝桥杯 / LeetCode 可用)
算法
H.莓飛13 分钟前
【数据结构】快速排序专题
linux·服务器·c语言·数据结构·visual studio
Suprman21 分钟前
平面排版问题的数学建模与算法设计
算法·数学建模·排序算法·排版套料
FPGA信号处理23 分钟前
【应用随机过程】:更新过程与马尔可夫链入门
算法·概率论
重生之小比特35 分钟前
【算法拾光】二分查找|在排序数组中查找元素的第一个和最后一个位置 + 搜索旋转排序数组
数据结构·算法·排序算法
吴可可12342 分钟前
DXF与AAMA格式转换模块推荐
算法
重生之小比特1 小时前
【算法拾光】二分查找|搜索旋转排序数组 + 寻找旋转排序数组中的最小值
算法
YukiRinLL1 小时前
查找与排序算法:复杂度、稳定性
数据结构·算法·排序算法
徐小夕10 小时前
花了3个月,我们做了一款 AI 版的“飞书文档”
前端·算法·github