[leetcode] 206. Reverse Linked List
2022. 11. 14. 14:07ㆍ노트/Algorithm : 알고리즘
Given the head of a singly linked list, reverse the list, and return the reversed list.
Example 1:
Input: head = [1,2,3,4,5]
Output: [5,4,3,2,1]
Example 2:
Input: head = [1,2]
Output: [2,1]
Example 3:
Input: head = []
Output: []
Constraints:
- The number of nodes in the list is the range [0, 5000].
- -5000 <= Node.val <= 5000
# 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 reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
def reverse(node, prev = None):
if not node:
return prev
next , node.next = node.next , prev
return reverse(next, node)
return reverse(head)
# 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 reverseList(self, head):
"""
:type head: ListNode
:rtype: ListNode
"""
node, prev = head, None
while node:
next, node.next = node.next, prev
prev, node = node, next
return prev
'노트 > Algorithm : 알고리즘' 카테고리의 다른 글
[leetcode] 24. Swap Nodes in Pairs (0) | 2022.11.18 |
---|---|
[leetcode] 2. Add Two Numbers (0) | 2022.11.14 |
[leetcode] 21. Merge Two Sorted Lists (0) | 2022.11.11 |
[leetcode] 234. Palindrome Linked List (0) | 2022.11.10 |
[leetcode] 238. Product of Array Except Self (0) | 2022.11.08 |