def return_node(self, head, position):
if position == 0:
# return the node correctly
return head
else:
self.return_node(head.next_node, position - 1)
def insert_at_position(self, head, data, position):
if position == 0:
self.insert_first(head, data)
elif position == self.length:
self.insert_last(head, data)
else:
previous_node = self.return_node(head, position - 1)
# previous_node's value is None instead of the method's return value
next_node = self.return_node(head, position)
# same here
new_node = Node(data, next_node)
previous_node.next_node = new_node
self.length += 1
特定の位置にノードを挿入するメソッドをリンクリストに実装しようとしています。問題は、変数 'previous_node'と 'next_node'が正しく値を取得していないことです。 ノード値の代わりに、None値を取得しています。君たちありがとう!何リターンキーワードが存在しないため変数がメソッドの戻り値をPythonで受け取っていません
return_nodeのは、 '' else'は何もreturn'しません。 – RemcoGerlich
おそらく、 'return self.return_node(head.next_node、position - 1)'を行うことを意図していました。 –