首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用递归进行链表反向打印时出现意外结果

问使用递归进行链表反向打印时出现意外结果
EN

Stack Overflow用户
提问于 2019-09-22 05:02:45
回答 1查看 29关注 0票数 0

我使用递归以逆序打印链表。我修改了一下代码,并在递归调用的上面添加了另一个print语句,希望它能按原始顺序打印链表,但它只打印链表的第一个元素。我的链表包含以下数据

代码语言:javascript
复制
0 --> 1 --> 2 --> 3 --> 4 --> 5 --> 6 --> 

链表类-

代码语言:javascript
复制
class node_obj:
def __init__(self, d):
    self.data = d
    self.next = None

我的递归函数-

代码语言:javascript
复制
def recursive_revers1(head):
if head != None:
    print('--------', head.data)
    recursive_rev(head.next)
    print(head.data)

recursive_revers1(head)

输出:

代码语言:javascript
复制
-------- 0
6
5
4
3
2
1
0

链表的反转是正确的,但是为什么第一个print语句只有1个呢?我希望它能按原来的顺序打印整个列表。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-22 05:12:43

您在递归中调用了错误的函数:recursive_rev (可能是代码的早期版本),但是您的递归函数现在称为recursive_revers1。这对我来说很有效:

代码语言:javascript
复制
def recursive_revers1(head):
    if head: # recommended way to ask if something is not None
        print('--------', head.data)
        recursive_revers1(head.next) # here was the mistake
        print(head.data)

recursive_revers1(head)

现在,在控制台中,我们得到:

代码语言:javascript
复制
-------- 0
-------- 1
-------- 2
-------- 3
-------- 4
-------- 5
-------- 6
6
5
4
3
2
1
0
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58044070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档