Notes on Brooks’ Theorem
Rich Schwartz
March 18, 2016
Let G be a connected graph. Let k denote the maximum degree of G
and let χ(G) denote the chromatic number of G. Brooks’ Theorem is that
χ(G) ≤ k as long as G is not a complete graph or an odd cycle. My proof is
mostly the same as what is in §5.1 in West’s book, but the end of my proof
is different.
Case 1: If k = 2 then G is either a path or an even cycle. This case is
trivial. So, assume that k ≥ 3.
Case 2: Suppose that G is not k-regular. This means that some vertex
v of G has degree less than k. Let T be a spanning tree of G, and orient T
so that all directed paths end at v. Choose any ordering of the vertices of G
so that the labels increase along directed paths of T . So, every vertex of G
except v is incident to a vertex of G which has a larger label.
Now do the greedy algorithm. At each step of the algorithm, except
the last one, the current vertex is incident to at most k − 1 vertices which
have already been colored. Hence, there is some color in {1, ..., k} which is
available for use. Since v is incident to at most k − 1 vertices, the same goes
for v. So, the greedy algorithm with the given ordering produces a proper
k-coloring.
Figure 1 shows an example in which k = 3. The vertex colors are red,
blue, magenta.
1
8 10
11
6
Figure 1: Ordering the vertices using a spanning tree.
Case 3: Suppose that G is k-regular but not 2-connected. So, there is some
cut vertex v of G. That is G − v is a finite union G′1 ∪ ... ∪ G′m of connected
graphs. Let Gj be the subgraph of G obtained by adding v to G′j and also
all the edges of G which connect v to vertices in G′j . We rename this extra
vertex vj . So, v1 , ..., vm are really all the same vertex, but it is useful to give
them different names. By construction, vj has degree less than k in each
graph Gj . So, by Case 2 or induction on k, we see that Gj has a proper
k-coloring. Permuting the colors if necessary, we can guarantee this proper
coloring assigns 1 to vj . But then all the separate proper colorings fit together
to give a proper coloring of G.
Figure 2: A cut vertex spanning tree.
2
Case 4: Suppose that G is k-regular and 2-connected. Suppose also that we
can find two vertices v and w, which are not adjacent, so that G − {v, w} is
disconnected. Then we draw the same kind of picture as in Figure 2, except
that rather than a single vertex v there are two vertices v and w. Consider
the corresponding graphs G1 , ..., Gm . As in Case 3, we have the vertices
v1 , w1 , ..., vm , wm . Since G is 2-connected, each vj has an edge connecting to
a vertex in Gj . The same goes for wj . Hence, the degree of vj and the degree
of wj are both less than k. This means that we can properly k-color each Gj .
Suppose that, for each j, we have either deg(vj ) < k−1 or deg(wj ) < k−1.
Then we can choose our coloring of Gj so that vj and wj get different colors.
Permuting the colors, we can arrange that vj gets color 1 and wj gets color
2. But then we can piece the separate colorings together to get a proper
k-coloring of G.
After re-numbering the components of G − {v, w}, we arrive at a single
exceptional case:
• There are just 2 graphs G1 and G2 .
• deg(v1 ) = deg(w1 ) = k − 1 and the coloring gives the same color to v1
and w1 .
in this case v2 and w2 have degree 1 in G2 , and we can adjust the colors so
that the coloring of G2 gives the same color to v2 and w2 . But now we can
permute the colors so that both colorings give the same color to v and w.
This gives us a proper k-coloring of G.
Case 4: In the remaining case, G is k-regular and there are two vertices
v1 and v2 , two units apart, such that G − {v1 , v2 } is connected. Let x be a
vertex incident to both v1 and v2 . Now we repeat Case 2, but with a twist.
Let T be a spanning tree of G − {v1 , v2 } which is directed towards x. We
label the vertices of T using the numbers 3, 4, 5, ... so that the labels increase
along any directed path towards x.
Now we do the greedy algorithm. The algorithm assigns the same color
to both x1 and x2 , because these are not adjacent. The algorithm then works
exactly as in Case 2 except when we get to the last step. It looks like we
might get into trouble because we have already colored the k vertices incident
to x. However, we have used the first color twice. Hence, there is still an
available color in {1, ..., k} which we can use for x. This gives us the desired
k-coloring of G.