Почему в двух списках копятся значения?
Задача
Решить проблему с накоплением значений в списках new_list_1 и new_list_2 при вызове нескольких раз одной функции, при следующем коде ->
Мой код
class ListNode(object):
def __init__(self, val=0, next=None):
self.val = val
self.next = next
class Solution(object):
def mergeTwoLists(self, list1, list2, new_list_1 = [], new_list_2 = []):
"""
:type list1: Optional[ListNode]
:type list2: Optional[ListNode]
:rtype: Optional[ListNode]
"""
def list_to_ListNode(l, d = {}):
d.clear()
for num, value in enumerate(l[::-1]):
d['val'] = value
if num == 0:
d['next'] = None
y = ListNode(d['val'], d['next'])
else:
y = ListNode(d['val'], y)
return y
if list1 != None:
for key,value in list1.__dict__.items():
if isinstance(value, int):
new_list_1.append(value)
else:
return self.mergeTwoLists(value, list2)
if list2 != None:
for key,value in list2.__dict__.items():
if isinstance(value, int):
new_list_2.append(value)
else:
return self.mergeTwoLists(list1, value)
total_list = new_list_1 + new_list_2
total_list.sort()
total_list = list_to_ListNode(total_list)
new_list_1 = []
new_list_2 = []
return total_list
Примечание
Если вам интересна сама задача, то вот ссылка на неё -> https://leetcode.com/problems/merge-two-sorted-lists Я знаю, как её решить нормальным способом, я хочу понять почему в переменных new_list_1 и new_list_2 лежат даже после:
new_list_1 = []
new_list_2 = []
Они продолжают лежать там после при попытке вывести следующий результат. Пробовал многое, но мне ничего не помогло.
Источник: Stack Overflow на русском