题目描述
给出一个列表,找出中间节点
思路
结题思路主要是通过快慢指针来找到中间节点:快指针的移动速度是慢指针移动速度的2倍,因此当快指针到达链表尾时,慢指针到达中点。
![](https://img.haomeiwen.com/i1531909/8f22a1b02653b28e.png)
另外快慢指针也可以检测列表是否循环:让快慢指针从链表头开始遍历,快指针向前移动两个位置,慢指针向前移动一个位置;如果快指针到达NULL,说明链表以NULL为结尾,不是循环链表。如果 快指针追上慢指针,则表示出现了循环。
代码实现
class Solution:
def peakIndexInMountainArray(self, A):
"""
:type A: List[int]
:rtype: int
"""
return A.index(max(A))
网友评论