59 / 205
LeetCode · EasyOson10 ball· ~15 daqiqa

Minimum Depth of Binary Tree

Ikkilik daraxtning ildizidan (root) eng yaqin barg tugunga (leaf node) qadar bo'lgan minimal chuqurlikni toping.

Eslatma: Bu yerda daraxt massiv sifatida ifodalanadi (level-order traversal), bunda null bo'lmagan tugunlar ketma-ket keladi. Siz ushbu massiv yordamida chuqurlikni hisoblashingiz mumkin.

Siz minimal chuqurlikni hisoblashingiz kerak, bunda:

  • Ildiz tugunning chuqurligi 1 ga teng.
  • Har bir bolaning chuqurligi ota-onasiga nisbatan 1 ga katta.
  • Barg tugun — bu bolasi bo'lmagan tugun.
example.go
func solve(leftChildren []int, rightChildren []int) int {
    // ...
}

Misollar

kod
Input: depth_count = 3 (daraxt: [3,9,20,null,null,15,7])
Output: 2
Tushuntirish: [3 -> 9] minimal chuqurlik 2 (3 dan 9 gacha).
kod
Input: leftChildren = [1,3,-1,-1,-1], rightChildren = [2,4,-1,-1,-1]
Output: 3
kod
Input: leftChildren = [-1], rightChildren = [-1]
Output: 1

Maslahatlar

  1. Bu yerda daraxt kirishda "to'liq" (complete) shaklda deb qaraladi, shuning uchun chuqurlikni daraxtni aylanib chiqmasdan, tugunlar sonidan formula orqali topish mumkin.
  2. Tugunlar sonini ikkilik (binary) ko'rinishga o'girib, undagi bitlar uzunligini (ya'ni log2(n) ning pastki butun qismi plyus bitta) hisoblang — bu aynan minimal chuqurlikka teng bo'ladi.