单链表是数据结构中常用的一种链式结构,它采用单向链表的方式,每个节点只有一个指针域指向其后继节点。单链表的节点包括两个域,一个是存储数据的域,另一个是存储指针的域。通过指针将各个节点串联在一起,形成一条链表。
下面我们将从多个角度分析Python单链表的创建。
1. 定义链表节点类
在Python中,我们可以使用类来定义链表节点。一个链表节点应该包含两个属性,一个是节点的值,另一个是指向下一个节点的指针。代码如下:
```
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
```
2. 创建链表
创建链表通常包括两个步骤,一个是创建链表头(即第一个节点),另一个是创建其他节点并链接到链表中。我们可以定义一个函数来实现这两个步骤。代码如下:
```
def create_linkedlist(nums):
head = ListNode(0)
cur = head
for val in nums:
cur.next = ListNode(val)
cur = cur.next
return head.next
```
其中,参数nums是一个列表,表示要创建的链表中包含的节点值。在函数内部,我们首先创建链表头head,然后使用cur指针来指向当前节点,依次遍历nums列表,创建每个节点,并使用cur指针将新节点链接到链表中。
3. 遍历链表
遍历链表可以使用循环语句,从链表头开始依次遍历每个节点,并访问节点的值。代码如下:
```
def traverse_linkedlist(head):
while head:
print(head.val)
head = head.next
```
其中,参数head为链表的头节点,我们使用循环语句和指针移动来依次访问每个节点。
4. 插入节点
在单链表中插入节点通常要涉及到节点的前驱节点和后继节点。我们可以先遍历链表找到待插入节点的前驱节点,然后将新节点链接到前驱节点的后继节点上。代码如下:
```
def insert_node(node, val):
new_node= ListNode(val)
new_node.next = node.next
node.next = new_node
```
其中,参数node是待插入节点的前驱节点,参数val是要插入的节点的值,函数中首先创建一个新节点new_node,并将其链接到node的后继节点中,最终返回修改后的链表。
5. 删除节点
在单链表中删除节点要涉及到节点的前驱节点和后继节点,我们可以先遍历链表找到待删除节点的前驱节点,然后将前驱节点的指针指向待删除节点的后继节点。代码如下:
```
def delete_node(node, val):
cur = node
while cur.next and cur.next.val != val:
cur = cur.next
cur.next = cur.next.next
return node
```
其中,参数node是链表的头节点,参数val是要删除的节点的值,函数中首先使用cur指针遍历链表找到待删除节点的前驱节点,然后将前驱节点的指针指向待删除节点的后继节点,最终返回修改后的链表。
综上,Python单链表的创建包括定义链表节点类、创建链表、遍历链表、插入节点和删除节点等操作。通过以上分析,我们可以更好地理解Python单链表的创建操作和实现。
微信扫一扫,领取最新备考资料