📌  相关文章
📜  用于在链表中间插入节点的Python程序(1)

📅  最后修改于: 2023-12-03 15:11:16.432000             🧑  作者: Mango

用于在链表中间插入节点的Python程序

链表是一种动态数据结构,可以方便地插入和删除节点。在链表中插入节点时,需要找到需要插入的位置。本文将介绍在链表中间插入节点的Python程序。

假设我们有以下链表结构:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)

node1.next = node2
node2.next = node3
node3.next = node4

要在节点2和节点3之间插入一个节点,我们需要进行以下操作:

  1. 创建要插入的节点
new_node = ListNode(5)
  1. 找到要插入的位置
curr_node = node1
while curr_node.next and curr_node.next.val < new_node.val:
    curr_node = curr_node.next

这个循环会遍历链表,直到找到要插入的位置。我们要找到一个节点,它的下一个节点的值大于等于要插入的节点的值。在这个例子中,我们将找到节点2。

  1. 插入新节点
new_node.next = curr_node.next
curr_node.next = new_node

这个操作将新节点插入到链表中。我们将新节点的next设置为当前节点的next,然后将当前节点的next设置为新节点。

完整代码如下:

class ListNode:
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)

node1.next = node2
node2.next = node3
node3.next = node4

new_node = ListNode(5)

curr_node = node1
while curr_node.next and curr_node.next.val < new_node.val:
    curr_node = curr_node.next

new_node.next = curr_node.next
curr_node.next = new_node

这个程序将在节点2和节点3之间插入新的节点5。