单链表的删操作

第一种情况:在链表中删除一个节点,删除一个节点,首先要找到要被删除节点的前驱节点,然后把这个前驱节点的 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
相关推荐
2601_967979121 小时前
机器学习必修课:经典算法与Python实战
python·算法·机器学习·实战·课程
程序猿打工仔1 小时前
计算机基础(C语言)考编、专技岗
c语言·开发语言·算法
通信小呆呆2 小时前
电子战干扰技术:从“蛮力压制”到“精准欺骗”,再到“认知博弈”
算法·通信·isac
老师我太想进步了20262 小时前
【数据结构-6】算法美学之单链表(1)
数据结构·算法
希望我万事顺遂3 小时前
力扣hot100-滑动窗口最大值
数据结构·算法·leetcode
喵了几个咪3 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
开发语言·人工智能·后端·golang
codeejun3 小时前
每日一Go·MySQL-14、慢 SQL 产生原因全解
sql·mysql·golang
꧁细听勿语情꧂3 小时前
二叉树余题,排序、直接插入排序、希尔排序
c语言·开发语言·数据结构·算法
是main不是漫4 小时前
【双指针|LeetCode1089 复写零】巧用逆向思路,破解原地覆盖陷阱
数据结构·算法·leetcode
专注仿真13 小时前
知识问答模型用到的算法集详解及代码实例
python·算法·代码·大模型训练·控制算法