# LintCode-图中两个点之间的路线

A----->B----->C
\     |
\    |
\   |
\  v
->D----->E


for s = B and t = E, return true

for s = D and t = C, return false

/**
* Definition for Directed graph.
* struct DirectedGraphNode {
*     int label;
*     vector<DirectedGraphNode *> neighbors;
*     DirectedGraphNode(int x) : label(x) {};
* };
*/
class Solution {
public:
/**
* @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
*/
bool hasRoute(vector<DirectedGraphNode*> graph,
DirectedGraphNode* s, DirectedGraphNode* t) {
// write your code here
queue<DirectedGraphNode*> q;
map<DirectedGraphNode*,bool> visited;
q.push(s);
visited[s]=true;
while(!q.empty())
{
DirectedGraphNode* cur = q.front();
q.pop();
if(cur==t)
return true;
for(auto neighbour:cur->neighbors)
{
if(!visited[neighbour])
{
q.push(neighbour);
visited[neighbour]=true;
}
}
}
return false;
}
};



• 广告
• 抄袭
• 版权
• 政治
• 色情
• 无意义
• 其他

120