Python双向链表反向打印功能异常,求代码调试方案
双向链表反向打印功能修复
问题分析
你的代码存在两个关键问题:
- 缩进错误:
print_backward方法被错误嵌套在get_last_node方法内部,导致外部无法正常调用该方法,这是功能失效的核心原因。 - 打印格式冗余:最终输出的字符串末尾会多出不必要的
-->,影响显示效果。
修复后的代码
class Node: def __init__(self, data=None, next=None, prev=None): self.data = data self.next = next self.prev = prev class LinkedList: def __init__(self): self.head = None def get_last_node(self): itr = self.head while itr.next: itr = itr.next return itr def print_backward(self): if self.head is None: print("Linked List is empty") return last = self.get_last_node() itr = last ll_parts = [] while itr: ll_parts.append(itr.data) itr = itr.prev print('-->'.join(ll_parts))
修复说明
- 修正缩进:将
print_backward方法的缩进调整到与get_last_node同级,确保它是LinkedList类的成员方法,能够被正常调用。 - 优化打印格式:改用列表收集所有节点数据,再通过
join方法拼接成字符串,避免末尾出现多余的-->,让输出更整洁。
额外建议
如果后续有其他方法需要调用get_last_node,建议在该方法内增加空链表判断,避免空指针报错:
def get_last_node(self): if self.head is None: return None itr = self.head while itr.next: itr = itr.next return itr
内容的提问来源于stack exchange,提问作者user19409398
相关产品推荐
相关产品推荐

