As of Version 10, all the functionality of the GraphUtilities package is built into the Wolfram System. >>


gives a list of n Hamiltonian cycles.


gives a list of one Hamiltonian cycle.


  • HamiltonianCycles functionality is now available in the built-in Wolfram Language function FindHamiltonianCycle.
  • To use HamiltonianCycles, you first need to load the Graph Utilities Package using Needs["GraphUtilities`"].
  • HamiltonianCycles[g,n] returns an empty list if no Hamiltonian cycle exists.
  • HamiltonianCycles considers the input graph as undirected.
  • The complexity of the algorithm is such that finding all Hamiltonian cycles for a large graph can take an exponential amount of time.


open allclose all

Basic Examples  (2)

This defines a small graph and finds a Hamiltonian cycle of the graph:

HamiltonianCycles has been superseded by FindHamiltonianCycle:

Scope  (1)

This defines a small graph and finds a Hamiltonian cycle of the graph:

This plots the graph and highlights the cycle in red:

This finds all Hamiltonian cycles:

Applications  (1)

This finds all possible Hamiltonian cycles in the graph consisting of bordering countries in South America:

This shows the first of these two cycles; the second is just a reversal of the first:

Properties & Relations  (1)

A graph that has a Hamiltonian cycle must be biconnected:

A graph that is biconnected does not necessarily have a Hamiltonian cycle: