Jelas bahwa
\(\prufer(\bfT)\) menerima sebuah pohon berlabel dengan
\(n\) simpul yang label-labelnya berasal dari
\([n]\text{,}\) lalu menghasilkan sebuah string dengan panjang
\(n-2\) yang simbol-simbolnya merupakan elemen
\([n]\text{.}\) Yang masih perlu kita lakukan adalah menentukan cara untuk menerima string semacam itu dan membangun sebuah pohon berlabel dengan
\(n\) simpul darinya. Jika kita dapat menemukan konstruksi semacam itu, kita akan memperoleh bijeksi antara himpunan
\(\mathcal{T}_n\) pohon berlabel pada
\(n\) simpul dan himpunan string dengan panjang
\(n-2\) yang simbol-simbolnya berasal dari
\([n]\text{.}\) Hal ini akan mengakibatkan
\(T_n=n^{n-2}\) .
Pertama, mari kita perhatikan perilaku
\(\prufer(\bfT)\text{.}\) Bilangan apa saja yang sebenarnya muncul dalam kode Prüfer? Bilangan-bilangan yang muncul dalam kode Prüfer merupakan label simpul-simpul
bukan daun dari
\(\bfT\text{.}\) Label sebuah daun tidak mungkin muncul karena kita selalu mencatat label
tetangga dari daun yang sedang dihapus, dan satu-satunya keadaan ketika kita akan menghapus tetangga suatu daun adalah ketika tetangga tersebut juga merupakan daun. Hal ini hanya dapat terjadi jika
\(\bfT\cong\bfK_2\text{,}\) dan dalam kasus itu
\(\prufer(\bfT)\) hanya menghasilkan string kosong. Sebaliknya, sebelum sebuah simpul yang semula bukan daun dapat menjadi daun, salah satu tetangganya harus dihapus dan label simpul tersebut akan dicatat. Jadi, jika
\(I\subset [n]\) merupakan himpunan simbol yang muncul dalam
\(\prufer(\bfT)\text{,}\) label daun-daun dari
\(\bfT\) tepat merupakan elemen-elemen
\([n]-I\text{.}\)
Setelah mengetahui label mana saja yang dimiliki daun-daun
\(\bfT\text{,}\) kita siap menggunakan induksi untuk menyelesaikan bukti. Tujuan kita adalah menunjukkan bahwa untuk sebuah string
\(\bfs=s_1s_2\cdots
s_{n-2}\) yang simbol-simbolnya berasal dari suatu himpunan
\(S\) dengan
\(n\) elemen, terdapat tepat satu pohon
\(\bfT\) dengan
\(\prufer(\bfT) = \bfs\text{.}\) Jika
\(n=2\text{,}\) satu-satunya string semacam itu adalah string kosong dan kedua elemen himpunan label sama-sama menjadi label daun. Untuk himpunan label baku, elemen-elemen itu adalah
\(1\) dan
\(2\text{,}\) sehingga kita hanya dapat membangun
\(\bfK_2\text{.}\) Sekarang, misalkan hasil tersebut berlaku untuk suatu
\(m\geq 2\text{,}\) dan kita berusaha membuktikannya untuk
\(m+1\text{.}\) Dengan melakukan pelabelan ulang yang mempertahankan urutan jika diperlukan, kita dapat menggunakan himpunan label baku pada langkah berikut. Kita memiliki string
\(\bfs = s_1s_2\cdots s_{m-1}\) dengan simbol-simbol dari
\([m+1]\text{.}\) Misalkan
\(I\) adalah himpunan simbol yang muncul dalam
\(\bfs\text{,}\) dan misalkan
\(k\) adalah elemen terkecil dari
\([m+1]-I\text{.}\) Berdasarkan paragraf sebelumnya, kita mengetahui bahwa
\(k\) adalah label sebuah daun dari
\(\bfT\) dan bahwa tetangga tunggalnya merupakan simpul berlabel
\(s_1\text{.}\) String
\(\bfs'=s_2s_3\cdots
s_{m-1}\) memiliki panjang
\(m-2\text{,}\) dan karena
\(k\) tidak muncul dalam
\(\bfs\text{,}\) simbol-simbolnya berasal dari
\(S=[m+1]-\{k\}\text{,}\) yang berukuran
\(m\text{.}\) Jadi, berdasarkan induksi, terdapat tepat satu pohon
\(\bfT'\) dengan kode Prüfer
\(\bfs'\text{.}\) Kita membentuk
\(\bfT\) dari
\(\bfT'\) dengan menempelkan sebuah daun berlabel
\(k\) pada simpul
\(\bfT'\) yang berlabel
\(s_1\text{,}\) sehingga diperoleh pohon dengan sifat yang diinginkan.