Я делаю свою собственную функцию merge_list рекурсивно, но я не могу сравнить значения в двух односвязных списках
мой код начинается с
class SList:
class _Node:
def __init__(self, element, next=None):
self._element = element
self._next = next
def element(self):
return self._element
def next(self):
return self._next
def set_element(self, element):
self._element = element
def set_next(self, next):
self._next = next
.
.
.
.
def merge_list(s1, s2): # merge_list recursively
if s1 is None and s2 is None:
return None
if s1 is None:
return s2
if s2 is None:
return s1
p1 = s1._head
p2 = s2._head
if p1 < p2:
s3 = s1
s3._next = merge_list(s1.next(), s2)
else:
s3 = s2
s3._next = merge_list(s1, s2.next())
return s3
И мой вклад ...
s1 = SList()
s1.insert_first("1")
s1.insert_first("3")
s1.insert_first("5")
s1.insert_first("7")
s1.insert_first("9")
s1.insert_first("11")
s1.insert_first("13")
print(f"s1 :", s1)
s2 = SList()
s2.insert_first("2")
s2.insert_first("4")
s2.insert_first("6")
print(f"s2 : ", s2)
merge_list(s1, s2)
два списка успешно создаются, но когда я использую свою собственную функцию merge_list,
вывод ...
s1 : 13 -> 11 -> 9 -> 7 -> 5 -> 3 -> 1 -> None: 7 element(s)
File "###################(my address)", line 312, in <module>
s2 : 6 -> 4 -> 2 -> None: 3 element(s)
merge_list(s1, s2)
File "###################(my address)", line 158, in merge_list
if p1 < p2:
TypeError: '<' not supported between instances of '_Node' and '_Node'
После этого сообщения TypeError я не могу сравнить значение списка с '<', тогда что мне нужно сделать, чтобы сравнить значение списка? </p>