有向路径检查
来源:互联网 发布:比特币挖矿用什么软件 编辑:程序博客网 时间:2024/06/11 23:44
题目描述
对于一个有向图,请实现一个算法,找出两点之间是否存在一条路径。
给定图中的两个结点的指针UndirectedGraphNode* a,UndirectedGraphNode* b(请不要在意数据类型,图是有向图),请返回一个bool,代表两点之间是否存在一条路径(a到b或b到a)。
import java.util.*;/*public class UndirectedGraphNode { int label = 0; UndirectedGraphNode left = null; UndirectedGraphNode right = null; ArrayList<UndirectedGraphNode> neighbors = new ArrayList<UndirectedGraphNode>(); public UndirectedGraphNode(int label) { this.label = label; }}*/public class Path { public boolean checkPath(UndirectedGraphNode a, UndirectedGraphNode b) { // write code here if(a==null||b==null) return false;boolean res1 = findNode(a, b);if(res1==true) return true;boolean res2 = findNode(b, a);return res2; } public boolean findNode(UndirectedGraphNode a, UndirectedGraphNode b){LinkedList<UndirectedGraphNode> queue = new LinkedList<UndirectedGraphNode>();HashSet<UndirectedGraphNode> set = new HashSet<UndirectedGraphNode>();queue.add(a);set.add(a);while(!queue.isEmpty()){UndirectedGraphNode tmp = queue.removeFirst();if(tmp==b) return true;for(UndirectedGraphNode w : tmp.neighbors){if(set.contains(w)) continue;queue.add(w);set.add(w);}}return false;}}
0 0
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 有向路径检查
- 第八天 有向路径检查
- 检查图中的有向路径
- 《程序员面试金典》有向路径检查
- 程序员面试金典题解 有向路径检查
- 程序员面试金典-4.2有向路径检查
- 程序员面试金典:二叉树平衡检查、有向路径检查
- 有向图最短路径
- 有向图 路径
- 程序员面试金典——有向路径检查(图)
- Dijkstra 有向图单源最短路径
- 稀疏有向图最短路径
- 有向无环图求单源最短路径问题
- swt中的多线程机制
- python 网络编程之 UDP编程
- Leetcode 131. Palindrome Partitioning
- 设计模式-3-装饰者模式
- Plus One---66
- 有向路径检查
- C语言中putchar()函数的使用
- 杵臼关节(发)
- C:\WINDOWS\system32\drivers\etc\hosts 文件有什么作用
- 集合元素的删除
- PAT (Advanced Level) Practise 1076 Forwards on Weibo (30)
- Maven依赖范围
- 经典的Java基础面试题
- 星号图