You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

带哑头的循环双向链表实现后输出顺序反向问题求解

问题诊断

  • 你代码的插入逻辑为头插法:每次新节点都插入到哑头head和第一个有效节点之间,输入序列会被倒序存储,遍历输出自然和输入顺序相反。
  • 你当前的遍历逻辑是从head.next开始向后遍历,和存储顺序一致,所以会输出反向结果。

修复代码

修改DoublyList类__init__方法中的插入逻辑,改用尾插法即可:

class Node:
    def __init__(self, value, next, prev ):
        self.data = value
        self.next = next
        self.prev = prev

class DoublyList:
    def __init__(self, c):
        self.head = Node(None,None,None) #instance variable
        self.head.prev = self.head.next = self.head

        for i in c:
            store = Node(i, None, None)
            # 尾插法:新节点插在当前尾部(head.prev)和head之间
            store.prev = self.head.prev
            store.next = self.head
            self.head.prev.next = store
            self.head.prev = store

    def showList(self):
        n = self.head.next
        while n !=self.head:
            print(n.data, end=' ')
            n = n.next
a = [10,20,30,40,50,60]
l1 = DoublyList(a)
l1.showList() # 输出:10 20 30 40 50 60 

内容的提问来源于stack exchange,提问作者Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:24:05