[proofplan]
We reduce homotopy to a chain of "close maps" and invoke [Close Maps Induce Equal Maps on Homology](/theorems/1943). Given a homotopy $H: |K| \times [0,1] \to |L|$, compactness of $|K| \times [0,1]$ promotes $H$ to a uniformly continuous map, so small time increments produce uniformly small changes in the sliced maps $H(\cdot, t)$. Partitioning $[0,1]$ finely enough makes each consecutive pair $f_i, f_{i+1}: |K| \to |L|$ uniformly within the previous theorem's $\varepsilon(L)$, whence $(f_i)_* = (f_{i+1})_*$. Chaining equalities along the partition gives $f_* = (f_0)_* = (f_m)_* = g_*$.
[/proofplan]
[step:Extract a uniform continuity modulus for the homotopy]
Let $H: |K| \times [0,1] \to |L|$ be a homotopy between $f$ and $g$, so $H$ is continuous with $H(\cdot, 0) = f$ and $H(\cdot, 1) = g$. Since $K$ is a finite simplicial complex, $|K| \subseteq \mathbb{R}^{N'}$ is compact, and the product $|K| \times [0,1]$ is compact as a finite product of compact metric spaces.
Let $\varepsilon = \varepsilon(L) > 0$ be the constant given by [Close Maps Induce Equal Maps on Homology](/theorems/1943) for the simplicial complex $L$.
A continuous map from a compact metric space to a metric space is uniformly continuous (by the Heine-Cantor theorem). Equip $|K| \times [0,1]$ with the product metric $d((x,s), (x',s')) = \|x - x'\| + |s - s'|$. By uniform continuity of $H$, there exists $\delta > 0$ such that for all $(x, s), (x', s') \in |K| \times [0,1]$,
\begin{align*}
\|x - x'\| + |s - s'| < \delta \quad \implies \quad \|H(x, s) - H(x', s')\| < \varepsilon.
\end{align*}
In particular, taking $x = x'$, for all $x \in |K|$ and all $s, t \in [0,1]$ with $|s - t| < \delta$,
\begin{align*}
\|H(x, s) - H(x, t)\| < \varepsilon.
\end{align*}
[/step]
[step:Partition $[0,1]$ into intervals of length less than $\delta$ and define the intermediate maps]
Choose an integer $m \geq 1$ with $1/m < \delta$, and set $t_i = i/m$ for $0 \leq i \leq m$. Then $0 = t_0 < t_1 < \cdots < t_m = 1$ and $t_i - t_{i-1} = 1/m < \delta$ for each $1 \leq i \leq m$.
Define the continuous maps
\begin{align*}
f_i: |K| &\to |L| \\
x &\mapsto H(x, t_i), \quad 0 \leq i \leq m.
\end{align*}
By construction $f_0 = H(\cdot, 0) = f$ and $f_m = H(\cdot, 1) = g$.
By Step 1, for every $1 \leq i \leq m$ and every $x \in |K|$,
\begin{align*}
\|f_i(x) - f_{i-1}(x)\| = \|H(x, t_i) - H(x, t_{i-1})\| < \varepsilon,
\end{align*}
since $|t_i - t_{i-1}| = 1/m < \delta$. Therefore $\|f_i - f_{i-1}\|_\infty < \varepsilon$, i.e., $f_i$ and $f_{i-1}$ are $\varepsilon$-close in the uniform norm.
[guided]
The bridge from a one-parameter homotopy to the previous theorem is the time-partition idea. The previous theorem controls maps that are pointwise $\varepsilon$-close to each other; a homotopy is pointwise $\varepsilon$-close for small time differences; therefore chopping $[0,1]$ into pieces of width $< \delta$ produces a sequence of "adjacent" maps each within $\varepsilon$ of the next.
Why does uniform continuity — rather than just continuity — of $H$ matter here? We need a single $\delta$ that works for **all** points $x \in |K|$ simultaneously, so that the uniform bound $\|f_i - f_{i-1}\|_\infty < \varepsilon$ holds. If the modulus of continuity depended on $x$, the partition step $1/m$ needed to ensure $\varepsilon$-closeness might have no finite uniform value. Compactness of the source $|K| \times [0,1]$ is what promotes pointwise continuity of $H$ to uniform continuity, via the Heine-Cantor theorem.
Compactness of $|K|$ itself comes from finiteness of the simplicial complex: the polyhedron of a finite simplicial complex is a finite union of closed simplices (each compact), hence compact.
[/guided]
[/step]
[step:Apply the close-maps theorem to each adjacent pair]
Fix $1 \leq i \leq m$. By Step 2, $f_{i-1}, f_i: |K| \to |L|$ are continuous and satisfy $\|f_i(x) - f_{i-1}(x)\| < \varepsilon$ for all $x \in |K|$, where $\varepsilon = \varepsilon(L)$ is the constant from [Close Maps Induce Equal Maps on Homology](/theorems/1943).
Applying [Close Maps Induce Equal Maps on Homology](/theorems/1943) with the pair $(f_{i-1}, f_i)$:
\begin{align*}
(f_{i-1})_* = (f_i)_*: H_n(K) \to H_n(L) \quad \text{for all } n.
\end{align*}
[/step]
[step:Chain the equalities to deduce $f_* = g_*$]
By Step 3, $(f_{i-1})_* = (f_i)_*$ for each $1 \leq i \leq m$. Chaining these equalities:
\begin{align*}
f_* = (f_0)_* = (f_1)_* = (f_2)_* = \cdots = (f_m)_* = g_*.
\end{align*}
The first equality uses $f_0 = f$; the last uses $f_m = g$. This equality holds in $\operatorname{Hom}(H_n(K), H_n(L))$ for every $n$, completing the proof.
[/step]