-
[리트코드] (LeetCode) 21번 Merge Two Sorted Lists 문제Problem Solving/LeetCode 2021. 7. 5. 17:43
두 개의 연결 리스트를 받아 정렬된 하나의 연결 리스트를 리턴하면 되는 문제다.
다양한 풀이 방법이 존재하는 것 같았으나,
필자는 제일 쉬운 방법으로 접근해서 풀었다.
각 연결 리스트의 데이터를 하나의 리스트에 담아주고,
정렬한 후,
새로운 ListNode를 만들어서 리턴해줬다.
사실 이러면 쓸데없는 메모리를 많이 잡아먹는다.
따라서 훌륭한 두뇌를 갖고 있다면..
새로운 리스트를 만드는 게 아닌 파라미터로 받은 리스트를 바로 정렬하는
방법으로 문제를 해결할 수 있을 것이다.
class Solution: def mergeTwoLists(self, l1: ListNode, l2: ListNode) -> ListNode: l = [] while l1: l.append(l1.val) l1 = l1.next while l2: l.append(l2.val) l2 = l2.next tmp = None head = None for val in sorted(l): if not tmp: tmp = ListNode(val) head = tmp else: tmp.next = ListNode(val) tmp = tmp.next return head
'Problem Solving > LeetCode' 카테고리의 다른 글
[리트코드] (LeetCode) 49번 Group Anagrams 문제 (0) 2021.07.05 [리트코드] (LeetCode) 24번 Swap Nodes in Pairs 문제 (0) 2021.07.05 [리트코드] (LeetCode) 20번 Valid Parentheses 문제 (0) 2021.07.05 [리트코드] (LeetCode) 15번 3Sum 문제 (0) 2021.07.05 [리트코드] (LeetCode) 2번 Add Two Numbers 문제 (0) 2021.07.05