728x90
[사용한 알고리즘]
x
[설명]
연결 리스트의 개념을 이해하고 있으면 크게 어렵지 않은 문제라고 생각한다.
l1, l2 각 값을 더한 후 해당 값을 역순으로 저장하는 연결 리스트를 구현하면 된다.
1. l1 연결리스트 값을 추출한다.
2. l2 연결리스트 값을 추출한다.
3. 추출한 두 값을 더한다.
4. 더한 값을 역순으로 연결 리스트에 저장한다.
[코드]
# Definition for singly-linked list.
# class ListNode:
# def __init__(self, val=0, next=None):
# self.val = val
# self.next = next
class Solution:
def addTwoNumbers(self, l1: Optional[ListNode], l2: Optional[ListNode]) -> Optional[ListNode]:
l1_num = l2_num = ''
while l1:
l1_num = str(l1.val) + l1_num
l1 = l1.next
while l2:
l2_num = str(l2.val) + l2_num
l2 = l2.next
total = list(str(int(l1_num) + int(l2_num)))
output = ListNode()
curr = output
for i in range(len(total)):
print('total', total[i])
curr.val = int(total[-i - 1])
if i != len(total) - 1:
curr.next = ListNode()
curr = curr.next
return output
728x90
'알고리즘 풀이 > LeetCode' 카테고리의 다른 글
[LeetCode] 3. Longest Substring Without Repeating Characters (0) | 2022.06.26 |
---|---|
[LeetCode] 1. Two Sum (0) | 2022.06.12 |