min_head = lists[0], min_head = min_head.next
라고 하더라도 lists[0]은 바뀌지 않는다.
min_head는 복사본이라 생각하면 된다. 복사본만 바뀌는 것이다.
- 사실 이건 연결리스트랑 무관한다.
b=[1], a=b[0], a=2 라고 하면 b=[1]인 것이랑 마찬가지이다.
- 하지만 연결리스트는 뭔가 다를 것이라 착각했었다.
- 아래 내용은 GPT의 도움을 받아 정리한 내용이다.
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
list1 = ListNode(1, ListNode(3, ListNode(5)))
list2 = ListNode(2, ListNode(4))
lists = [list1, list2]
min_head = lists[0]
print(f"Before update (잘못된 방법): min_head={min_head.val}, lists[0]={lists[0].val}")
min_head = min_head.next
print(f"After update (잘못된 방법): min_head={min_head.val}, lists[0]={lists[0].val}")
min_index = 0
print(f"Before update (올바른 방법): lists[0]={lists[0].val}")
Before update (올바른 방법): lists[0]=1
lists[min_index] = lists[min_index].next
print(f"After update (올바른 방법): lists[0]={lists[0].val}")
After update (올바른 방법): lists[0]=3