python 给你单链表的头结点 head ,请你找出并返回链表的中间结点。
时间: 2024-04-13 22:31:02 浏览: 16
要找出链表的中间结点,可以使用快慢指针的方法。快指针每次移动两步,慢指针每次移动一步,当快指针到达链表末尾时,慢指针刚好到达链表的中间位置。
以下是通过 Python 实现的代码示例:
```python
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def findMiddleNode(head):
slow = head
fast = head
while fast and fast.next:
slow = slow.next
fast = fast.next.next
return slow
# 示例代码
# 创建一个链表: 1 -> 2 -> 3 -> 4 -> 5
head = ListNode(1)
head.next = ListNode(2)
head.next.next = ListNode(3)
head.next.next.next = ListNode(4)
head.next.next.next.next = ListNode(5)
middleNode = findMiddleNode(head)
print(middleNode.val) # 输出: 3
```
在这个示例中,我们创建了一个链表:1 -> 2 -> 3 -> 4 -> 5,然后调用 `findMiddleNode` 方法找到链表的中间结点,并打印出中间结点的值。输出结果为 3。