【題目描述】
Given a directed graph, design an algorithm to find out whether there is a route between two nodes.
給出一張有向圖,設(shè)計(jì)一個(gè)算法判斷兩個(gè)點(diǎn)s與t之間是否存在路線。
【題目鏈接】
www.lintcode.com/en/problem/route-between-two-nodes-in-graph/
【題目解析】
檢測(cè)圖中兩點(diǎn)是否通路,用DFS或者BFS均可,注意檢查是否有環(huán)。
這里使用哈希表記錄節(jié)點(diǎn)是否被處理較為方便。深搜時(shí)以起點(diǎn)出發(fā),遞歸處理其鄰居節(jié)點(diǎn),需要注意的是處理鄰居節(jié)點(diǎn)的循環(huán)時(shí)不是直接 return, 而只在找到路徑為真時(shí)才返回 true, 否則會(huì)過早返回 false 而忽略后續(xù)可能滿足條件的路徑。
【參考答案】
www.jiuzhang.com/solutions/route-between-two-nodes-in-graph/