반응형
Notice
Recent Posts
Recent Comments
- Today
- Total
작심삼일
[LeetCode] 876 | Middle of the Linked List | Python 본문
728x90
반응형
문제 링크: https://leetcode.com/problems/middle-of-the-linked-list/
문제
Given the head of a singly linked list, return the middle node of the linked list.
If there are two middle nodes, return the second middle node.
조건
- The number of nodes in the list is in the range [1, 100].
- 1 <= Node.val <= 100
내 풀이
리스트의 길이를 재서 N에 저장한다. (python index처럼 저장한다. ex. 길이가 1이면 N=0, 길이가 2면 N=1, ...)
절반 지점에 해당하는 값을 half로 저장한다.
이때, 리스트의 길이가 짝수일 때는(N이 홀수) 뒤의 값을 사용해야하기 때문에 N%2를 더해준다.
half에 해당하는 지점까지 리스트의 head를 이동한 뒤, 리턴한다.
코드
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def middleNode(self, head: Optional[ListNode]) -> Optional[ListNode]:
N = 0
nhead = head
while nhead.next:
nhead = nhead.next
N += 1
half = N//2 + N%2
while half > 0:
head = head.next
half -= 1
return head
728x90
반응형
'스터디 > 코테' 카테고리의 다른 글
[LeetCode] 70 | Climbing Stairs | Python (0) | 2022.12.12 |
---|---|
[LeetCode] 872 | Leaf-Similar Trees | Python (0) | 2022.12.08 |
[LeetCode] 1704 | Determine if String Halves Are Alike | Python (0) | 2022.12.01 |
[LeetCode] 1207 | Unique Number of Occurrences | Python (0) | 2022.11.30 |
[LeetCode] 2225 | Find Players With Zero or One Losses (0) | 2022.11.28 |
Comments