python单链表创建
时间: 2024-01-01 14:03:26 浏览: 76
链表是由一系列节点组成的元素的集合,每个节点包含两部分,数据域item和指向下一个节点的指针next。在Python中,可以通过头插法和尾插法来创建单链表。头插法是从链表头部开始插入节点,而尾插法是从链表尾部开始插入节点。
以下是使用头插法创建单链表的代码示例:
```
# 定义节点类
class Node:
def __init__(self, item):
self.item = item
self.next = None
# 头插法创建链表
def create_linklist_head(li):
head = Node(li[0]) # 头结点
for element in li[1:]:
node = Node(element)
node.next = head
head = node
return head
```
以下是使用尾插法创建单链表的代码示例:
```
# 尾插法创建链表
def create_linklist_tail(li):
head = Node(li[0]) # 头结点
tail = head
for element in li[1:]:
node = Node(element)
tail.next = node
tail = node
return head
```
使用print_linklist函数可以遍历输出链表的元素。
相关问题
python 单链表
Python中的单链表可以使用自定义的Node类来表示每个节点,每个节点包含一个数据项和一个指向下一个节点的指针。以下是一个简单的示例:
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if self.head is None:
self.head = new_node
else:
current = self.head
while current.next:
current = current.next
current.next = new_node
def display(self):
current = self.head
while current:
print(current.data, end=" ")
current = current.next
print()
# 创建一个单链表并进行操作
my_list = LinkedList()
my_list.append(1)
my_list.append(2)
my_list.append(3)
my_list.display() # 输出: 1 2 3
```
上述示例中,我们定义了一个Node类来表示单链表的节点。然后,我们创建了一个LinkedList类来管理单链表。在LinkedList类中,我们提供了`append()`方法来添加新的节点到链表的末尾,并提供了`display()`方法来打印链表中的所有节点数据。
请注意,这只是单链表的基本实现示例,还可以根据需要添加其他方法和功能。
python单链表排序
使用python对单链表进行排序可以采用以下步骤:
1. 遍历单链表,将节点的值存储在一个列表中。
2. 使用内置的排序函数(例如sorted)对列表进行排序。
3. 创建一个新的链表,并将排序后的列表中的值依次添加到新链表中。
以下是对单链表进行排序的示例代码:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def sortList(head):
# Step 1: Traverse the linked list and store the values in a list
values = []
curr = head
while curr:
values.append(curr.val)
curr = curr.next
# Step 2: Sort the list of values
sorted_values = sorted(values)
# Step 3: Create a new linked list with sorted values
dummy = ListNode(0)
curr = dummy
for val in sorted_values:
curr.next = ListNode(val)
curr = curr.next
return dummy.next
```
请注意,这里假设输入的链表是一个单链表,并且每个节点都有一个整数值。
阅读全文