Phỏng vấn top 150Dễ dàng

Tổ tiên chung thấp nhất của BST

Hướng dẫn chi tiết và cách triển khai Python cho bài toán 'Tổ tiên chung thấp nhất của BST'.

Tuyên bố vấn đề

Dễ dàng

Cho cây tìm kiếm nhị phân (BST), tìm nút tổ tiên chung (LCA) thấp nhất của hai nút đã cho trong BST.

Theo định nghĩa của LCA: "Tổ tiên chung thấp nhất được xác định giữa hai nút p và q là nút thấp nhất trong T có cả p và q là hậu duệ (trong đó chúng tôi cho phép một nút là hậu duệ của chính nó)."

BST được biểu diễn dưới dạng danh sách thứ tự cấp độ. Triển khai hàm lowestCommonAncestor(root: list, p: int, q: int) -> int trả về giá trị của nút LCA.

Ràng buộc
  • The number of nodes in the tree is in the range [2, 100000]
  • -1000000000 <= Node.val <= 1000000000
  • All Node.val are unique
  • p != q
  • p and q will exist in the BST

Ví dụ

Example 1
Input
[6,2,8,0,4,7,9,None,None,3,5], 2, 8
Output
6
Explanation

The LCA of nodes 2 and 8 is 6, which is the root.

Example 2
Input
[6,2,8,0,4,7,9,None,None,3,5], 2, 4
Output
2
Explanation

The LCA of nodes 2 and 4 is 2, since a node can be a descendant of itself.

Example 3
Input
[2,1], 2, 1
Output
2
Explanation

The LCA of nodes 2 and 1 is 2.

Need a Hint?
Hãy cân nhắc sử dụng các cấu trúc dữ liệu dành riêng cho Cây như tập hợp hoặc đống.
Edge Cases to Watch
  • Cấu trúc đầu vào trống
  • Đầu vào phần tử đơn
  • Giới hạn số lớn

Sẵn sàng để giải quyết?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Mở trong Trình chỉnh sửa
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.