ListNode
是Python中常用的数据结构之一,它用于构建链表。
链表是一种线性数据结构,由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。
链表可以分为单向链表和双向链表,其中单向链表的每个节点只包含一个指向下一个节点的指针,而双向链表的每个节点包含一个指向下一个节点和一个指向上一个节点的指针。
ListNode的定义
代码语言:javascript复制class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
上述代码定义了一个名为ListNode
的类,类中有两个属性:val和next。val用于存储节点的数据元素,next用于指向下一个节点。在初始化方法__init__()
中,通过参数val
和next
分别初始化这两个属性。
如果没有指定参数值,则使用默认值0和None。
创建链表
通过ListNode类,我们可以很方便地创建链表。链表的头节点是链表的入口,可以通过头节点遍历整个链表。
下面是一个创建链表的示例代码:
代码语言:javascript复制# 创建链表: 2 -> 4 -> 3
node3 = ListNode(3)
node2 = ListNode(4, node3)
node1 = ListNode(2, node2)
head = node1
上述代码创建了一个包含5个节点的链表,每个节点的值从1到5递增。通过链表的头节点head可以访问整个链表。
遍历链表
代码语言:javascript复制while head:
print(head.val)
node = head.next
上述代码使用while循环遍历链表,从头节点开始,依次访问每个节点的值,并将当前节点指向下一个节点,直到链表末尾(即节点的next为None)。
输出:
代码语言:javascript复制2
4
3