[proofplan]
Uniqueness follows from the fact that a nonzero polynomial of degree at most $n$ has at most $n$ real roots: if two interpolants agreed at $n+1$ points, their difference would be a polynomial of degree $\le n$ with $n+1$ roots, hence zero. Existence is given by the Lagrange construction: define cardinal polynomials $\ell_i$ that are $1$ at $x_i$ and $0$ at every other node, then take $p = \sum f_i\,\ell_i$.
[/proofplan]
[step:Prove uniqueness via the root-counting argument]
Suppose $p, q \in P_n[x]$ both satisfy $p(x_i) = q(x_i) = f_i$ for $i = 0, \dots, n$.
Then $r := p - q \in P_n[x]$ vanishes at $n+1$ distinct points $x_0, \dots, x_n$.
Since a nonzero polynomial of degree at most $n$ has at most $n$ real roots, $r$ must be the zero polynomial.
Therefore $p = q$.
[/step]
[step:Construct the interpolant via Lagrange cardinal polynomials]
Define the Lagrange cardinal polynomials
\begin{align*}
\ell_i(x) &= \prod_{\substack{j=0 \\ j \neq i}}^{n} \frac{x - x_j}{x_i - x_j}, \quad i = 0, \dots, n.
\end{align*}
Each $\ell_i$ is a polynomial of degree $n$.
It satisfies $\ell_i(x_j) = \delta_{ij}$: it equals $1$ at $x_i$ (since each factor $(x_i - x_j)/(x_i - x_j) = 1$) and vanishes at every other node $x_j$ with $j \neq i$ (since the factor $(x_j - x_j)/(x_i - x_j) = 0$).
Define
\begin{align*}
p(x) &= \sum_{i=0}^n f_i\,\ell_i(x).
\end{align*}
This is a polynomial of degree at most $n$, and for each $j = 0, \dots, n$:
\begin{align*}
p(x_j) &= \sum_{i=0}^n f_i\,\delta_{ij} = f_j.
\end{align*}
[/step]