2. 欧拉路径判定(是否存在):
-
有向图欧拉路径:图中恰好存在 1 个点出度比入度多 1(这个点即为 起点 SS),1 个点入度比出度多 1(这个点即为 终点 TT),其余节点出度=入度。
-
有向图欧拉回路:所有点的入度=出度(起点 S 和终点 T 可以为任意点)。
-
无向图欧拉路径:图中恰好存在 2 个点的度数是奇数,其余节点的度数为偶数,这两个度数为奇数的点即为欧拉路径的 起点 S 和 终点 T。
-
无向图欧拉回路:所有点的度数都是偶数(起点 S 和终点 T 可以为任意点)。
注:存在欧拉回路(即满足存在欧拉回路的条件),也一定存在欧拉路径。
当然,一副图有欧拉路径,还必须满足将它的有向边视为无向边后它是连通的(不考虑度为 00 的孤立点),连通性的判断我们可以使用并查集
或 dfs
等。