https://leetcode.com/problems/reverse-linked-list/
Reverse Linked List - LeetCode
Can you solve this real interview question? Reverse Linked List - Given the head of a singly linked list, reverse the list, and return the reversed list. Example 1: [https://assets.leetcode.com/uploads/2021/02/19/rev1ex1.jpg] Input: head = [1,2,3,4,5] O
leetcode.com
문제 : 단일 연결 리스트를 뒤집어라.
입력 : 1 ->2 ->3->4->5->NULL
출력 : 5->4->3->2->1->NULL
1. 나의 풀이 방법
1. 연결리스트를 리스트로 변환한다.
2. reverse() 함수를 사용하여 리스트를 뒤집어준다.
3. 리스트를 다시 연결리스트로 만들어주기.
class ListNode(object):
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution(object):
def reverseList(self, head):
#1번 리스트에 다 넣고 reverse()함수를 통해 재정렬 -> 다시 연결리스트로 만들어주기
#연결리스트 -> 리스트
if head is None:
return
arr =[]
while head is not None:
arr.append(head.val)
head=head.next
#리스트를 뒤집기
arr.reverse()
#리스트를 연결리스트로
if len(arr)>0:
head_node = ListNode(arr[0])
current = head_node
for i in range(1,len(arr)):
new_node = ListNode(arr[i])
current.next = new_node
current = current.next
return head_node
시간복잡도 : O(n) , 공간복잡도 O(n)
'코딩 > leetcode' 카테고리의 다른 글
[leetcode]22 일일 온도 (0) | 2023.08.04 |
---|---|
[leetcode]2번 두 수의 덧셈, 파이썬 (0) | 2023.07.18 |
[leetcode]21 두 연결리스트의 병합 (0) | 2023.07.16 |
[leetcode]234 팰린드롬 연결리스 (0) | 2023.07.16 |
[leetcode]238 자신을 제외한 배열의 곱 (0) | 2023.07.14 |