首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从单链表中删除节点

是指在一个单链表中删除指定节点的操作。单链表是一种常见的数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。

删除节点的操作需要考虑以下几种情况:

  1. 删除头节点:如果要删除的节点是头节点,需要将头节点指针指向下一个节点即可。
  2. 删除中间节点:如果要删除的节点是中间节点,需要将前一个节点的指针指向下一个节点,跳过要删除的节点。
  3. 删除尾节点:如果要删除的节点是尾节点,需要找到尾节点的前一个节点,将其指针指向空即可。

下面是一个示例代码,演示如何从单链表中删除节点:

代码语言:txt
复制
class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

def deleteNode(head, val):
    # 处理头节点为要删除节点的情况
    if head.val == val:
        return head.next
    
    # 遍历链表查找要删除的节点
    curr = head
    while curr.next:
        if curr.next.val == val:
            curr.next = curr.next.next
            break
        curr = curr.next
    
    return head

# 创建一个示例链表:1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)
node5 = ListNode(5)
head.next = node2
node2.next = node3
node3.next = node4
node4.next = node5

# 删除节点值为3的节点
head = deleteNode(head, 3)

# 打印删除节点后的链表:1 -> 2 -> 4 -> 5
curr = head
while curr:
    print(curr.val)
    curr = curr.next

在云计算领域中,单链表的删除节点操作并不直接涉及云计算相关的概念和技术。因此,无法给出腾讯云相关产品和产品介绍链接地址。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 链表的几种基本操作

    链表是一种动态数据结构,他的特点是用一组任意的存储单元(可以是连续的,也可以是不连续的)存放数据元素。链表中每一个元素成为“结点”,每一个结点都是由数据域和指针域组成的,每个结点中的指针域指向下一个结点。Head是“头指针”,表示链表的开始,用来指向第一个结点,而最后一个指针的指针域为NULL(空地址),表示链表的结束。可以看出链表结构必须利用指针才能实现,即一个结点中必须包含一个指针变量,用来存放下一个结点的地址。实际上,链表中的每个结点可以用若干个数据和若干个指针。结点中只有一个指针的链表称为单链表,这是最简单的链表结构。再c++中实现一个单链表结构比较简单。

    01

    “365算法每日学计划”:04打卡-自己动手写一个单链表

    一、概述 单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始。 链式存储结构的线性表将采用一组任意的存储单元存放线性表中的数据元素。由于不需要按顺序存储,链表在插入、删除数据元素时比顺序存储要快,但是在查找一个节点时则要比顺序存储要慢 使用链式存储可以克服顺序线性表需要预先知道数据大小的缺点,链表结构可以充分利用内存空间,实现灵活的内存动态管理。但是链式存储失去了数组随机存取的特点,同时增加了节点的指针域,空间开销较大。 二、图解 下图就是最简单最一般的

    03
    领券