经典理论

欧拉路径与欧拉回路

你能把一座城市的每座桥都恰好走一次再回到家吗?1736 年,欧拉把这个谜题变成了一条定理——并由此创立了图论。

阅读需要 9 分钟 更新时间:2026年6月 中级水平
LGT
Learn Graph Theory Team
Expert Operations Research Engineers

1. 什么是欧拉迹?

欧拉迹(也称欧拉路径)是穿过图的一条路线,它恰好经过每条边一次。你可以多次经过同一个顶点,但绝不能两次走同一条边。

它回答了一个出人意料地实用的问题:给定一个由道路、管道或电缆构成的网络,我能否在不重复任何连接的情况下走遍全部?

2. 欧拉路径与欧拉回路

这两个术语密切相关,但并不相同:

每条欧拉回路都是欧拉迹,但反之不成立。一个图支持哪一种,完全取决于其顶点的度数。

3. 柯尼斯堡七桥问题

普鲁士城市柯尼斯堡被一条河分成四块陆地,由七座桥相连。市民们想知道,能否散步一次,恰好走过每座桥一次并回到起点。

1736 年,莱昂哈德·欧拉证明了这样的路线并不存在。他把每块陆地看作一个顶点、每座桥看作一条边,并做出关键观察:每当你经一座桥进入一块陆地,就必须经另一座桥离开,因此每个"途经"顶点都需要偶数座桥。柯尼斯堡的四个顶点都连着奇数座桥,使得这条路线不可能实现。这一证明被公认为图论的诞生。(参见我们的图论的历史。)

4. 度数规则:何时存在?

顶点的是与它相连的边的数量。欧拉的洞见为连通图给出了简单而精确的规则:

此外图还必须是连通的。否则,只需数一数奇数度的顶点即可。

亲自走一遍这个图

构建一个网络,然后观看算法逐条边地描出欧拉迹——并亲眼看到为什么奇数度的顶点会破坏它。

打开可视化工具

5. 如何找到它:Fleury 与 Hierholzer 算法

一旦确定欧拉迹存在,两种经典算法可以把它构造出来:

Fleury 算法

每次走一条边,除非别无选择,否则绝不走(一条删去后会使图不连通的边)。它易于理解,但不断检查桥使其相对较慢。

Hierholzer 算法

高效之选,时间复杂度为 O(E)。先沿边形成一个闭环,然后反复在当前路径上找一个仍有未使用边的顶点,并在那里拼入另一个环。当没有未使用的边时,这些环合并成一条欧拉回路。

6. 欧拉 vs 哈密顿

两者常被混淆,但它们是完全不同的问题:

关键差别在于计算难度:判断欧拉迹是否存在很容易(数奇数度即可),而判断哈密顿路径是否存在是 NP 完全问题——属于计算机科学中最难的一类。旅行商问题就是一个著名的哈密顿式挑战。

7. 现实应用

常见问题

欧拉路径和欧拉回路有什么区别?

欧拉路径恰好经过每条边一次,可以在不同顶点开始和结束。欧拉回路也恰好经过每条边一次,但必须在同一个顶点开始和结束。

如何判断一个图是否存在欧拉迹?

对于连通图,若每个顶点的度都为偶数,则存在欧拉回路;若恰好两个顶点的度为奇数,则存在开放的欧拉路径。若超过两个顶点的度为奇数,则不存在欧拉迹。

欧拉路径和哈密顿路径有什么区别?

欧拉路径经过每条边一次,哈密顿路径经过每个顶点一次。判断欧拉路径很容易,但判断哈密顿路径是 NP 完全问题。

为什么柯尼斯堡七桥问题无解?

四块陆地都连着奇数座桥。欧拉迹最多允许两个奇数度顶点,因此不可能恰好走过每座桥一次。

进一步探索

描出每一条边

阅读欧拉迹是一回事;看着它在图上逐步展开会让度数规则豁然开朗。交互式地绘制你自己的图并找出它们的欧拉路径。

打开可视化工具