Python程序删除双向链表开头的新节点

Python程序删除双向链表开头的新节点

什么是双向链表?

双向链表(doubly linked list)是一种链表的变体,每个节点不仅包含指向下一个节点的指针,还包含指向上一个节点的指针。通过这种方式,我们可以在双向链表中更加方便地向前或向后遍历。

以下是一个简单的Python实现双向链表的例子:

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
        self.prev = None


class DoublyLinkedList:
    def __init__(self):
        self.head = None

    def insertToFront(self, data):
        newNode = Node(data)
        newNode.next = self.head
        if self.head is not None:
            self.head.prev = newNode
        self.head = newNode

    def printList(self):
        node = self.head
        while node is not None:
            print(node.data, end=" ")
            node = node.next

删除开头的新节点

在双向链表中,我们可以很容易地删除开头的节点。我们只需要将头指针指向下一个节点,然后将下一个节点的prev指针指向None。

以下是一个简单的Python程序来删除双向链表开头的新节点:

def deleteFirstNode(self):
    if self.head is None:
        return
    else:
        self.head = self.head.next
        self.head.prev = None

示例

下面是一个简单的示例,说明如何使用上面定义的双向链表和删除开头新节点的方法:

dList = DoublyLinkedList()
dList.insertToFront(10)
dList.insertToFront(20)
dList.insertToFront(30)
dList.insertToFront(40)

# print original list
print("Original List : ")
dList.printList()

# Delete first node
dList.deleteFirstNode()

# Print updated list
print("\nList after deleting first node: ")
dList.printList()

完整代码

class Node:
    def __init__(self, data):
        self.data = data
        self.next = None
        self.prev = None


class DoublyLinkedList:
    def __init__(self):
        self.head = None

    def insertToFront(self, data):
        newNode = Node(data)
        newNode.next = self.head
        if self.head is not None:
            self.head.prev = newNode
        self.head = newNode

    def deleteFirstNode(self):
        if self.head is None:
            return
        else:
            self.head = self.head.next
            self.head.prev = None

    def printList(self):
        node = self.head
        while node is not None:
            print(node.data, end=" ")
            node = node.next

# Example
dList = DoublyLinkedList()
dList.insertToFront(10)
dList.insertToFront(20)
dList.insertToFront(30)
dList.insertToFront(40)

# print original list
print("Original List : ")
dList.printList()

# Delete first node
dList.deleteFirstNode()

# Print updated list
print("\nList after deleting first node: ")
dList.printList()

结论

双向链表是一种强大的数据结构,可以用于许多不同的应用程序。删除双向链表的开头的新节点是一个相对简单的操作,只需要修改头指针并将新头节点的prev指向None即可。在Python中,可以使用类和方法来实现双向链表。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程