python - 递归深度优先搜索返回无
问题描述
def find_itinerary(start_city, start_time, end_city, deadline):
discovered = set()
depth = 0
import copy
def dfs(curr_city,curr_time,flight_tracker):
if curr_city == end_city:
return flight_tracker
for flight in flightDB:
if flight.end_city not in discovered and flight.match(curr_city,curr_time):
ft = copy.deepcopy(flight_tracker)
ft.append(flight)
dfs(flight.end_city,flight.end_time,ft)
return dfs(start_city,start_time,[])
上面的函数总是返回 None。我知道它为什么返回 None (不返回 for 循环 dfs),但我不知道如何解决它。另外,我不能在 for 循环中放置 return 语句,因为它会破坏 for 循环。是否可以执行递归 DFS 来返回列表之类的值?
解决方案
推荐阅读
- python - 根据包含的文本自动调整 QLabel 的大小
- .net - Bing 地图 - REST 图像 API 绘制线限制
- python - manage.py runserver 没有做任何事情
- javascript - 在一个对象中获取 2 个属性时遇到问题
- javascript - 如何在 Node.js REST API 中处理非传统查询
- java - 使用 Java 运行 Bash 脚本
- c++ - 预先不工作。我的代码适用于双链表的正常打印。但是,我想预先
- ios - 无法在音频播放器中移动滑块
- javascript - 如何解决 Nodejs 中的内存泄漏问题?
- python - ValueError:检查输入时出错:预期 input_58 有 3 个维度,但得到的数组形状为 (10000, 10020)