반응형
이 포스팅은 파이썬 알고리즘 인터뷰를 공부하면서 정리한 내용입니다.
출처 : 파이썬 알고리즘 인터뷰
코드 출처 : 파이썬 알고리즘 인터뷰 깃허브
14. 두 정렬 리스트의 병합
리트코드 21. Merge Two Sorted Lists 문제입니다.
풀이
리트코드 디스커션에 직관적인 풀이가 있어서 가져와 봤습니다.
1. 반복문 풀이
def mergeTwoLists(self, l1, l2):
dummy = cur = ListNode(0)
while l1 and l2:
if l1.val > l2.val:
cur.next = l1
l1 = l1.next
else:
cur.next = l2
l2 = l2.next
cur = cur.next
cur.next = l1 or l2
return dummy.next
2. 재귀 풀이
def mergeTwoLists(self, l1, l2):
if not l1 or not l2:
return l1 or l2
if l1.val < l2.val:
l1.next = self.mergeTwoLists(l1.next,l2)
return l1
else:
l2.next = self.mergeTwoLists(l1, l2.next)
return l2
반응형
'Python > 알고리즘' 카테고리의 다른 글
[파이썬 알고리즘 인터뷰] 17. 페어의 노드 스왑 (0) | 2021.02.19 |
---|---|
[파이썬 알고리즘 인터뷰] 15. 역순 연결 리스트 (0) | 2021.02.15 |
[파이썬 알고리즘 인터뷰] 13. 팰린드롬 연결 리스트 (0) | 2021.02.15 |
[자료구조] 이중 연결 리스트를 파이썬으로 구현하기 (0) | 2021.02.13 |
[자료구조] 연결 리스트를 알아보고 파이썬으로 구현하기 (2) | 2021.02.13 |