#BST0000020. Tổ tiên chung gần nhất trong BST (Lowest Common Ancestor of a Binary Search Tree)
Tổ tiên chung gần nhất trong BST (Lowest Common Ancestor of a Binary Search Tree)
Tổ tiên chung gần nhất trong BST (Lowest Common Ancestor of a Binary Search Tree)
Nguồn: LeetCode
Phiên bản: Phước Hưng OJ Extended
Đề bài
Dựng BST từ khóa phân biệt theo đúng thứ tự chèn.
Cho hai khóa khác nhau và , cả hai đều tồn tại trong cây. Một nút là tổ tiên chung của và nếu cả hai nút mang khóa và đều nằm trong cây con gốc tại . Theo quy ước, một nút được xem là hậu duệ của chính nó.
Tổ tiên chung gần nhất (Lowest Common Ancestor - LCA) là tổ tiên chung có độ sâu lớn nhất, tức nằm thấp nhất trong cây.
Hãy in khóa của LCA của hai nút mang khóa và .
Input
Dòng đầu chứa số nguyên .
Dòng thứ hai chứa khóa phân biệt theo thứ tự chèn.
Dòng thứ ba chứa hai khóa và .
Output
In một số nguyên là khóa của tổ tiên chung gần nhất của và .
Subtask
Subtask 1 (20 điểm): .
Subtask 2 (30 điểm): .
Subtask 3 (50 điểm): .
Trong tất cả các subtask, ; các phân biệt; và cả đều xuất hiện trong cây.
Ví dụ
Input
9
6 2 8 0 4 7 9 3 5
2 8
Output
6
Giải thích
Nút mang khóa nằm trong cây con trái của gốc , còn nút mang khóa nằm trong cây con phải. Vì vậy không có nút nào nằm thấp hơn mà vẫn chứa cả hai nút trong cây con của nó.
Do đó LCA của và có khóa .