ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. Add Two Numbers
    Programming/leetcode 2021. 2. 8. 22:15
    728x90

    이전에 풀었던 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
Designed by Tistory.