У меня есть узел класса:
class LinkedNode:
__slots__ = 'val', 'next'
def __init__(self, val, next):
self.val = val # element at the node
self.next = next # next node reference
def __str__(self):
return str(self.val)
__repr__ = __str__
Я пытаюсь вернуть строковое представление списка узлов в обратном порядке, но с использованием рекурсии.Он не изменяет узел, а только возвращает строковое представление узла.Я также хочу отформатировать его правильно.
Поэтому, если узел был:
{1, 2, 3}
Я хочу использовать рекурсивную функцию, чтобы он мог печатать:
3, 2, 1
У меня есть следующая функция:
def reverse_str(node):
str_rep = ""
if node is None:
return str_rep
else:
str_rep = str(node.val)
# For str(node.val), there is a class function that returns
# str(self.val)
str_rep = reverse_str(node.next) + str_rep + ", "
Если узел был:
{1, 2, 3}
Мой результат:
3, 2, 1, # Trailing comma
Кажется, я не могу понять,способ избавиться от запятой, оставляя функцию рекурсивной.Вероятно, это простой оператор if / else, но я не уверен, что нужно проверить, чтобы увидеть, является ли это первым головным узлом.Я также не хочу изменять класс Node.
Любые предложения или идеи будут полезны!Спасибо.