Predstavme si, že do vrcholu $A$ tečie neobmedzene veľa vody, ktorá sa šíri po hranách grafu. V čase $0$ je pod vodou iba $A$. V čase $1$ budú zatopené všetky vrcholy vzdialené od $A$ presne $1$, v čase $2$ budú zatopené tie vzdialené $2$, ... (Vrchol je zatopený, ak v predchádzajúcej jednotke času nebol pod vodou, ale teraz už je.)
V momente, keď je zatopené $B$, môžeme skončiť: čas zatopenia je hľadaná vzdialenosť. Ak $B$ nikdy nezatopíme, tak sa tam z $A$ nevieme dostať.
...zostrojujeme vrecia $M_0,M_1,M_2,\dots$, pričom Mk obsahuje práve tie vrcholy, ktorých vzdialenosť od $A$ je práve $k$. (Obsahuje teda práve vrcholy, ktoré sú zatopené v čase $k$.)
Ak poznáme $M_k$, tak $M_{k+1}$ vieme získať tak, že volíme postupne každý vrchol v $M_k$, a rozšírime sa z neho: do $M_{k+1}$ pridáme všetky vrcholy, do ktorých vedie hrana zo zvoleného vrcholu, a ktoré ešte neboli zatopené. (To zodpovedá tomu, že si zvolíme vrchol zatopený v predchádzajúcom čase, a zatopíme všetky vrcholy, do ktorých vedie hrana zo zvoleného vrcholu, a ktoré ěste neboli zatopené.)
Je jasné, že takýmto spôsobom dostaneme iba vrcholy so vzdialenosťou $k+1$. Dostaneme ale všetky také vrcholy?
Áno, a dôvod je nasledovný:
Zoberme si ľubovoľný vrchol $C$ z $M_{k+1}$ (teda jeho vzdialenosť od $A$ je $k+1$). Nájdeme vrchol z $M_k$, z ktorého keď sa rozšírime, zatopíme $C$.
Kedže má vrchol $C$ vzdialenosť od $A$ rovnú $k+1$, existuje cesta z $A$ do neho dlhá $k+1$. Hľadaným vrcholom je napríklad predposledný vrchol na tejto ceste: