Route Between Two Nodes in Graph
Description
Given a directed graph, design an algorithm to find out whether there is a route between two nodes s and t.
/**
* Definition for Directed graph.
* class DirectedGraphNode {
* int label;
* ArrayList<DirectedGraphNode> neighbors;
* DirectedGraphNode(int x) {
* label = x;
* neighbors = new ArrayList<DirectedGraphNode>();
* }
* };
*/
public class Solution {
/*
* @param graph: A list of Directed graph node
* @param s: the starting Directed graph node
* @param t: the terminal Directed graph node
* @return: a boolean value
*/
public boolean hasRoute(ArrayList<DirectedGraphNode> graph, DirectedGraphNode s, DirectedGraphNode t) {
// write your code here
if(s == t){
return true;
}
if(s.neighbors.size()== 0){
return false ;
}
if(s.neighbors != null){
for(int i=0 ; i < s.neighbors.size() ; i++){
if(hasRoute(graph, s.neighbors.get(i), t)) {
return true ;
}
}
}
return false ;
}
}
本文介绍了一种算法,用于判断给定有向图中两个指定节点是否存在路径连接。通过递归遍历节点邻居,实现从起始节点s到终止节点t的查找,若找到则返回true,否则返回false。
1400

被折叠的 条评论
为什么被折叠?



