首页 > 解决方案 > 递归深度优先搜索返回无

问题描述

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 来返回列表之类的值?

标签: pythondepth-first-search

解决方案


推荐阅读