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

Python实现BookCollection链表getBooksByAuthor方法查询指定作者书籍

正确实现方案

修正后的getBooksByAuthor方法代码

def getBooksByAuthor(self, author):
    # 存储匹配到的书籍详情
    matched_books = []
    # 从链表头开始遍历
    current_node = self.head
    while current_node is not None:
        current_book = current_node.getData()
        # 匹配作者则加入结果列表
        if current_book.getAuthor() == author:
            matched_books.append(current_book.getBookDetails())
        # 移动到下一个节点
        current_node = current_node.getNext()
    # 若需要返回换行拼接的字符串而非列表,可替换上面的return为下行代码
    # return '\n'.join(matched_books)
    return matched_books

实现逻辑说明

  • 首先初始化空列表存储匹配结果
  • 从链表头节点开始遍历所有存储的书籍节点
  • 对每个节点内的Book实例做作者匹配,匹配成功就调用getBookDetails获取详情存入列表
  • 遍历完全部节点后返回结果列表

额外注意事项

  1. 原BookCollection类的insertBook方法定义末尾缺少英文冒号,会触发语法错误,修正后代码如下:
def insertBook(self, book):
    temp = BookCollectionNode(book)
    temp.setNext(self.head)
    self.head = temp
  1. 你提供的测试代码中没有插入b1实例(《The Shining》),所以运行测试代码只会返回b3、b0两本符合条件的书籍详情,若需要包含b1需额外执行bc.insertBook(b1)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:36:04