刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!
解答思路:
要找到单链表的中间节点,我们可以使用快慢指针的方法。我们定义两个指针,一个快指针和一个慢指针,都从链表的头部开始移动。快指针每次移动两步,而慢指针每次只移动一步。当快指针到达链表的末尾时,慢指针将指向链表的中间节点。这种方法的时间复杂度为O(n),其中n是链表的长度。
最优回答:
以下是使用Python实现的找到单链表中间节点的函数:
class Node:
def __init__(self, data):
self.data = data
self.next = None
def find_middle_node(head):
if head is None: # 如果链表为空,直接返回None
return None
slow = fast = head # 初始化快慢指针,都指向链表头部
while fast is not None and fast.next is not None: # 快指针每次移动两步
slow = slow.next # 慢指针每次移动一步
fast = fast.next.next
return slow.data # 返回中间节点的数据值
本文链接:Write a function to find the middle node of a sing
版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!
