快速找到链表中间的位置

题目:对于给定链表,快速找到链表中间位置的元素

思路:双index,idnex1每次移动一步,index2每次移动2步,当index2移动到末尾时,index1即为中间位置

注:单层for循环找到链表中间位置

1
2
3
4
5
6
7
8
9
10
11
12
def (head):
p1 = p2 = head
if not head or not head.next:
return head
while p2.next.next:
p1 = p1.next
p2 = p2.next.next
if not p2.next:
break
return p1
ll = creat_ll([1,2,3])
print_ll(find_median(ll))