【问题标题】:printing linked list with pointers with python用python指针打印链表
【发布时间】:2018-11-22 05:53:01
【问题描述】:

我是一个 python 初学者,并试图创建一个函数,用指针'->' 打印出链表的值p>

class LinkNode:
def __init__(self,value,nxt=None):
    assert isinstance(nxt, LinkNode) or nxt is None
    self.value = value
    self.next = nxt

def print_list(lst):
    """
    >>> print_list(LinkNode(3, None))
    3 -> None
    """
    temp = lst
    while temp:
       print(temp.value, sep = '', end=' -> ')
       temp = temp.next

每次我运行它时,它都会创建相同的输出,看起来也一样,但有一个错误提示:

 Test Failed: '3 -> ' != '3 -> None\n'
 - 3 -> 
 + 3 -> None

我不确定 \n 想说什么?

【问题讨论】:

    标签: python linked-list


    【解决方案1】:

    \n 是“换行”的转义码。

    sep 参数不起作用,除非您在同一个打印调用中打印多个项目。

    您也没有打印最终的None。在 while 循环之后执行此操作。

    def print_list(lst):
        """
        >>> print_list(LinkNode(3, None))
        3 -> None
        """
        temp = lst
        while temp:
           print(temp.value, end=' -> ')  # you don't need sep here.
           temp = temp.next
        print(temp)
    

    【讨论】:

    • 哎呀抱歉,当我试图将我的代码放入堆栈溢出时,我不小心将参数 lst 更改为 x。 @gilch
    • 打印final None是什么意思?
    • @michael 文档字符串中的示例显示3 -> None,但您只打印temp.value,而不是temp.next,其中None 存在。 None 无法打印。
    • 我知道,或多或少,所以在 while 循环之后添加一个 print 应该打印 None?
    • @michael 如果它满足您的需求,请投票并接受答案,而不是“谢谢”评论。
    猜你喜欢
    • 1970-01-01
    • 2017-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多