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

Python函数-在链表的开头和结尾处插入一个值-不修改链表

链表是一种常见的数据结构,它由一系列节点组成,每个节点包含一个值和指向下一个节点的指针。在链表的开头和结尾处插入一个值是常见的操作,可以通过以下Python函数实现:

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

def insertAtBeginning(head, value):
    new_node = ListNode(value)
    new_node.next = head
    return new_node

def insertAtEnd(head, value):
    new_node = ListNode(value)
    if head is None:
        return new_node
    current = head
    while current.next:
        current = current.next
    current.next = new_node
    return head

上述代码定义了一个ListNode类,表示链表的节点。insertAtBeginning函数在链表的开头插入一个值,它创建一个新的节点,并将其指针指向原来的头节点。insertAtEnd函数在链表的结尾插入一个值,它遍历链表找到最后一个节点,然后将新节点添加到最后一个节点的后面。

这些函数可以用于不修改原始链表的情况下,在链表的开头和结尾处插入一个值。

以下是一些示例代码,演示如何使用上述函数:

代码语言:txt
复制
# 创建链表:1 -> 2 -> 3 -> None
head = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
head.next = node2
node2.next = node3

# 在链表开头插入值 0
head = insertAtBeginning(head, 0)

# 在链表结尾插入值 4
head = insertAtEnd(head, 4)

# 打印链表:0 -> 1 -> 2 -> 3 -> 4 -> None
current = head
while current:
    print(current.val, end=" -> ")
    current = current.next
print("None")

这段代码创建了一个链表,然后在链表的开头插入值0,在链表的结尾插入值4,并打印最终的链表。

对于链表的开头和结尾插入操作,可以应用于各种场景,例如在实现队列或栈的数据结构时,可以使用这些操作。

腾讯云提供了云计算相关的产品和服务,其中与链表操作相关的产品可能没有直接对应的服务。但是,腾讯云提供了弹性伸缩、负载均衡、容器服务等多种云计算基础设施和解决方案,可以用于构建和部署应用程序。您可以访问腾讯云官方网站了解更多关于这些产品的信息:腾讯云产品

请注意,以上答案仅供参考,具体的解决方案可能根据实际需求和环境而有所不同。

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

相关·内容

  • Vim学习笔记上篇

    在普通模式中,用的编辑器命令,比如移动光标,删除文本等等。这也是Vim启动后的默认模式。这正好和许多新用户期待的操作方式相反(大多数编辑器默认模式为插入模式)。 Vim强大的编辑能来自于其普通模式命令。普通模式命令往往需要一个操作符结尾。例如普通模式命令dd删除当前行,但是第一个”d”的后面可以跟另外的移动命令来代替第二个d,比如用移动到下一行的”j”键就可以删除当前行和下一行。另外还可以指定命令重复次数,2dd(重复dd两次),和dj的效果是一样的。用户学习了各种各样的文本间移动/跳转的命令和其他的普通模式的编辑命令,并且能够灵活组合使用的话,能够比那些没有模式的编辑器更加高效地进行文本编辑。 在普通模式中,有很多方法可以进入插入模式。比较普通的方式是按a(append/追加)键或者i(insert/插入)键。

    03
    领券