📅  最后修改于: 2023-12-03 14:56:20.201000             🧑  作者: Mango
如果你正在处理链表数据结构,并且想要找到链表中间节点的头部,那么你来对地方了。在本文章中,我们将会学习如何利用Python语言来实现这一功能。
下面是我们的Python代码片段,其中使用了「快慢指针」算法来找到链表中间节点的头部:
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def middle_node(head):
slow = fast = head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
return slow
代码解释如下:
ListNode
类用于创建链表节点对象,其中 val
属性用于存储节点的值,next
属性用于存储当前节点连接的下一个节点。middle_node
函数用于找到链表的中间节点的头部。在函数内部,我们使用了两个指针 slow
和 fast
分别指向链表的头部。我们将 fast
指针向前移动两次,将 slow
指针向前移动一次。当 fast
指针到达链表末尾或者指向 None
节点时,slow
指针就将指向链表的中间节点。下面是我们的代码使用示例:
node1 = ListNode(1)
node2 = ListNode(2)
node3 = ListNode(3)
node4 = ListNode(4)
node5 = ListNode(5)
node1.next = node2
node2.next = node3
node3.next = node4
node4.next = node5
print(middle_node(node1).val)
输出结果为:
3
我们可以看到,输出结果为链表中间节点的头部。
总结: