[LeetCode] 2.Add Two Numbers

psy4072·2023년 2월 4일
0

Algorithm

목록 보기
23/23

문제 설명

  • 입력
    (2 -> 4-> 3) + (5 -> 6 -> 4)

  • 출력
    7 -> 0 -> 8

  • 설명
    342 + 456 = 807

➡️ 역순으로 저장된 연결리스트의 숫자를 더하라

문제풀이

  1. 연결리스트 뒤집기
  2. 연결리스트를 Python의 리스트 형태로 변환
  3. 리스트를 연결리스트로 변환
  4. 두 연결리스트 덧셈

1. 연결리스트 뒤집기

def ReverseList(self, head):
	node, prev = head, None
    
    while node:
    next, node.next = node.next, prev
    prev, node = node, next
    
    return prev

2. 연결리스트 -> 리스트

def toList(self, node):
	list = []
    
    while node:
    	list.append(node.val)
        node = node.next
        
    return list

3. 리스트 -> 연결리스트

def toReverseLinkedList(self, result):
	prev = None
    
    for r in result:
    	node = ListNode(r)
        node.next = prev
        prev = node
        
    return node

4. 두 연결리스트 덧셈

def addTwoNumbers(self, l1, l2):
	a = self.toList(self.ReverseList(l1))
    b = self.toList(self.ReverseList(l2))
    
    resultStr = int(''.join(map(str, a))) + \
    			int(''.join(map(str, b)))
                
    return self.toReverseLinkedList(str(resultStr))
profile
Ⓓ🅰️🅣🄰 ♡♥︎

0개의 댓글