Latihan 1 dari materi Binary Tree di Struktur Data — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi dua function rekursif untuk binary tree:
countNodes(node): jumlah semua node di pohon itu.
maxDepth(node): jumlah node di jalur terpanjang dari root sampai leaf, sama dengan jumlah level-nya.
Kalau node adalah null (pohon kosong), keduanya mengembalikan 0.
Pohon di kode punya 5 node dan 3 level. Console harus mencetak empat baris ini, berurutan:
5
3
0
0
Function-nya juga dicoba dengan pohon lain, jadi harus benar untuk pohon apa pun. Biarkan class TreeNode seperti apa adanya.
Hint
Tiap anak adalah root dari pohon yang lebih kecil. Function-nya cukup mengurus satu node, lalu memanggil dirinya sendiri untuk node.left dan node.right. Pohon kosong (null) langsung dijawab 0.
countNodes: 1 untuk node ini, ditambah countNodes kiri dan countNodes kanan. maxDepth: 1 untuk node ini, ditambah yang lebih besar dari maxDepth kiri dan maxDepth kanan, pakai Math.max. Mulai keduanya dengan if (node === null) return 0;