알고리즘
[LeetCode] Middle of the Linked List
유병각
2022. 4. 23. 20:36
[LeetCode] Middle of the Linked List
풀이_#1
fast 와 slow 사용 fast 는 2칸씩, slow 는 1칸씩 이동하므로 n 번의 반복뒤에는 fast 는 2n 칸, slow 는 n 칸에 있고 fast가 끝일경우(2n = len) slow(n = len/2) 는 중간에 위치하게됨.
# Definition for singly-linked list.
# class ListNode(object):
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution(object):
def middleNode(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
slow, fast = head, head
while (fast and fast.next):
slow = slow.next
fast = fast.next.next
return slow