📅  最后修改于: 2023-12-03 14:50:01.142000             🧑  作者: Mango
在编程过程中,我们经常需要对链表中的节点进行修改操作。本文将介绍如何在链表中修改节点的值和指针。
链表的节点通常包含两个部分:数据和指针。我们可以通过访问节点的数据部分来修改节点的值。
下面是一个示例代码:
class Node:
def __init__(self, val=None):
self.val = val
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, val):
if not self.head:
self.head = Node(val)
return
cur = self.head
while cur.next:
cur = cur.next
cur.next = Node(val)
def print_list(self):
cur = self.head
while cur:
print(cur.val, end=" ")
cur = cur.next
print()
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.print_list()
# 修改第二个节点的值
cur = linked_list.head.next
cur.val = 4
linked_list.print_list()
上述代码中,我们创建了一个单向链表,并向其中添加了三个节点。最后我们修改了第二个节点的值,并打印出链表中的节点值。
输出结果为:
1 2 3
1 4 3
我们还可以通过修改节点的指针来在链表中移动节点的位置或者删除某个节点。
下面是一个示例代码:
class Node:
def __init__(self, val=None):
self.val = val
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, val):
if not self.head:
self.head = Node(val)
return
cur = self.head
while cur.next:
cur = cur.next
cur.next = Node(val)
def remove(self, val):
if not self.head:
return
if self.head.val == val:
self.head = self.head.next
return
cur = self.head
while cur.next:
if cur.next.val == val:
cur.next = cur.next.next
return
cur = cur.next
def print_list(self):
cur = self.head
while cur:
print(cur.val, end=" ")
cur = cur.next
print()
linked_list = LinkedList()
linked_list.append(1)
linked_list.append(2)
linked_list.append(3)
linked_list.print_list()
# 移除第二个节点
linked_list.remove(2)
linked_list.print_list()
上述代码中,我们创建了一个单向链表,并向其中添加了三个节点。最后我们移除了第二个节点,并打印出链表中的节点值。
输出结果为:
1 2 3
1 3
在链表中修改节点的值和指针都是很常见的操作。我们可以通过访问节点的数据部分来修改节点的值,并通过修改节点的指针来移动节点的位置或者删除某个节点。