[leetcode] 92. Reverse Linked List II
2022. 11. 22. 09:54ㆍ노트/Python : 프로그래밍
Given the head of a singly linked list and two integers left and right where left <= right, reverse the nodes of the list from position left to position right, and return the reversed list.
Example 1:
Input: head = [1,2,3,4,5], left = 2, right = 4
Output: [1,4,3,2,5]
Example 2:
Input: head = [5], left = 1, right = 1
Output: [5]
Constraints:
- The number of nodes in the list is n.
- 1 <= n <= 500
- -500 <= Node.val <= 500
- 1 <= left <= right <= n
Follow up: Could you do it in one pass?
# 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 reverseBetween(self, head, left, right):
"""
:type head: ListNode
:type left: int
:type right: int
:rtype: ListNode
"""
if not head or left == right:
return head
root = start = ListNode(None)
root.next = head
# start, end 지정
for _ in range(left - 1):
start = start.next
end = start.next
# 반복하면서 뒤집기
for _ in range(right - left): # 2번
tmp = start.next
start.next = end.next
end.next = end.next.next
start.next.next = tmp
return root.next
'노트 > Python : 프로그래밍' 카테고리의 다른 글
[python] Colab에서 한글 폰트 사용하기 (0) | 2022.11.01 |
---|---|
JVMNotFoundException: No JVM shared library file (libjvm.so) found. Try setting up the JAVA_HOME environment variable properly. (0) | 2022.09.28 |
[Attention] 컴퓨터 비젼에서의 어텐션 기법 (번역) (0) | 2021.08.02 |
[딥러닝 기초] 신경망 코딩하기 (텐서플로우, 파이토치 활용) (0) | 2021.05.19 |
[시계열] 주가 예측을 위한 RNN/LSTM/GRU 기술적 가이드 (번역) (3) | 2021.03.30 |