-
2. Add Two NumbersProgramming/leetcode 2021. 2. 8. 22:15728x90
이전에 풀었던 hongprogrammer.tistory.com/entry/206-Reverse-Linked-List 를 참고하면 쉬운 문제
두 개의 Linked List가 오고 이것을 int로 변환해서 계산을 하고, 다시 Linked List로 만드는 문제
내가 풀이 한 방법은 다음과 같다
1) Linked List를 역순으로 만든다.
2) 역순이 된 LinkedList를 str로 만들고, 다시 int로 만든다.
3) int형이 된 listNode를 더하고, 다시 LinkedList로 만들다
코드는 길지만, 천천히 따라가보면 충분히 이해 가능할것 같다.,
def reverseList(self, head:ListNode)->ListNode: node, prev = head, None while node: next, node.next = node.next, prev prev, node = node, next return prev def getIntFromList(self, head:ListNode)->int: s = "" node = head while node: s += str(node.val) node = node.next return int(s) def covertToListNode(self, num)->ListNode: s = str(num) node = None for c in range(len(s)): tmp = ListNode(s[c]) tmp.next = node node = tmp return node def addTwoNumbers(self, l1: ListNode, l2: ListNode) -> ListNode: #ListNode를 먼저 뒤집자 return self.covertToListNode(self.getIntFromList(self.reverseList(l1)) + self.getIntFromList(self.reverseList(l2)))
'Programming > leetcode' 카테고리의 다른 글
538. Convert BST to Greater Tree (0) 2021.02.11 242. Valid Anagram (0) 2021.02.11 206. Reverse Linked List (0) 2021.02.08 821. Shortest Distance to a Character (0) 2021.02.08 21. Merge Two Sorted Lists (0) 2021.02.05