[leetcode] 두 정렬 리스트의 병합

김민서·2024년 1월 8일
0

알고리즘 문제풀이

목록 보기
21/47

두 정렬 리스트를 오름차순으로 병합하는 문제이다.

class ListNode(object):
    def __init__(self, val=0, next=None):
        self.val = val
        self.next = next

class Solution(object):
	def mergeTwoLists(self, list1, list2):
    	node = ListNode()	# node라는 리스트 노드를 하나 선언하고
        cur = node			# node의 head를 cur(현재 노드)로 선언
        
        while list1 and list2:	# list1과 list2에 노드가 남아있는 동안
        	if list1.val < list2.val:
            	cur.next = list1
                list1 = list1.next
            else:				# list2.val < list1.val
            	cur.next = list2
                list2 = list2.next
            cur = cur.next 		# 현재 노드의 head를 다음 노드로 지정해줌
            
            if list1:				# list1에는 남아있는 노드가 있지만 list2에는 노드가 남아있지 않을 경우
            	cur.next = list1
            if list2:				# list2에는 남아있는 노드가 있지만 list1에는 노드가 남아있지 않을 경우
            	cur.next = list2
                
            return node.next     	# 리스트의 head를 반환 (node는 None이므로 node.next를 반환함)

0개의 댓글