Menu
CoddyTech

Maximum Depth of Binary Tree

Bạn nhận được một cây nhị phân được lưu trong mảng tree theo thứ tự từng mức. Gốc nằm ở chỉ số 0, các nút con của nút ở chỉ số i nằm tại 2*i+1 (bên trái) và 2*i+2 (bên phải), -1 đánh dấu vị trí trống và mảng có thể kết thúc bằng một số phần tử -1 thừa. Hãy trả về độ sâu tối đa của cây: số nút trên đường đi dài nhất từ gốc xuống một nút lá.

Hàm

maxDepth(tree: integer-array) → integer
treeinteger-array
cây nhị phân theo thứ tự mức, với -1 cho vị trí trống
Trả vềinteger
số lượng nút trên đường đi dài nhất từ gốc đến lá

Ràng buộc

  • 1 ≤ tree.length ≤ 32767
  • Mỗi tree[i] là -1 hoặc một giá trị thỏa mãn 0 ≤ tree[i] ≤ 1000.
  • tree[0] không bao giờ là -1, vì vậy cây có ít nhất một nút.
  • Mảng có thể kết thúc bằng các phần tử -1 thừa nằm sau nút cuối cùng.
  • Cả hai nút con của một vị trí trống cũng đều trống, và độ sâu tối đa là 14.

Ví dụ

Đầu vào
tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]
Đầu ra
4
Giải thích
Đường đi dài nhất là 5, 8, 3, 6 (các chỉ số 0, 1, 4, 9), gồm 4 nút. Đường đi qua 1 dừng lại sau 2 nút.
challenge icon

Câu hỏi mở rộng

Bạn sẽ trả về các giá trị trên đường đi dài nhất từ gốc đến lá cùng với độ dài của đường đi đó như thế nào? Nếu có nhiều đường đi dài bằng nhau, bạn sẽ trả về đường đi nào?

Đặt lại code
def maxDepth(tree):
    # Viết code tại đây

Kiểm thử #1

Kiểm thử #2

Kiểm thử #3

Đối số

tree = [5, 8, 1, -1, 3, -1, -1, -1, -1, 6]

Đầu ra mong đợi

4