<p>递归的基本条件是跳过其中一个元素。您正在执行<code>self.head.next_node=cur_node</code>,而不是将<code>self.head</code>本身赋给最后一个元素。你知道吗</p>
<p>我对<code>reversell_rec</code>函数做了一点修改:</p>
<pre><code>def reversell_rec(self, node):
# print("Recursive")
cur_node = node
# print(cur_node)
# print(cur_node.next_node)
# print(cur_node.data)
if (cur_node.next_node == None):
self.head = cur_node
return
self.reversell_rec(cur_node.next_node)
temp=cur_node.next_node
temp.next_node = cur_node
cur_node.next_node = None
</code></pre>
<p>由于您使用了“None”头,因此我还必须更改<code>display</code>函数:</p>
<pre><code>def display(self):
elems=[]
cur_node=self.head
print('Display:')
# print(cur_node)
# print(cur_node.next_node)
# print(cur_node.data)
if self.head.data!=None:
while(cur_node.next_node!=None):
elems.append(cur_node.data)
cur_node=cur_node.next_node
else:
cur_node=cur_node.next_node
while(cur_node!=None):
elems.append(cur_node.data)
cur_node=cur_node.next_node
print(elems)
</code></pre>