1059. All Paths from Source Lead to Destination

Question

CleanShot 2024-09-11 at 16.05.25@2x.png

Code

class Solution:
    def leadsToDestination(self, n: int, edges: List[List[int]], source: int, destination: int) -> bool:
        
        adj = defaultdict(list)

        for a, b in edges:
            adj[a].append(b)

        visited = {}

        def dfs(cur):
            if cur in visited:
                return visited[cur]

            if len(adj[cur]) == 0:
                return cur == destination

            visited[cur] = False

            for nei in adj[cur]:
                if not dfs(nei):
                    return False

            visited[cur] = True

            return visited[cur]

        return dfs(source)