LeetCode 701 Chèn vào Cây Tìm Kiếm Nhị Phân - 78winđăngnhập

Ngày 29 tháng 12 năm 2019 - Máy tính

1. Mô tả bài toán Cho một cây tìm kiếm nhị phân (BST) cùng với nút gốc và giá trị cần chèn. Nhiệm vụ của bạn là chèn giá trị này vào cây BST đã cho và trả về cây BST sau khi đã hoàn thành việc chèn. (Lưu ý: Giá trị cần chèn không tồn tại trong cây BST ban đầu.)

Có thể có nhiều cách chèn hợp lệ, nghĩa là chỉ cần đảm bảo rằng sau khi chèn, cây vẫn duy trì được đặc tính của một cây tìm kiếm nhị phân là được. Bạn có thể trả về bất kỳ kết quả hợp lệ nào.

Ví dụ: Đầu vào: Cây đã cho:

1    4
2    / \
3   2   7
4   / \
5  1   3

và giá trị cần chèn: 5

Đầu ra: cwin222 Bạn có thể trả về cây tìm kiếm nhị phân sau đây:

1     4
2    /  \
3   2    7
4   / \  /
5  1   3 5

Hoặc cũng có thể trả về cây tìm kiếm nhị phân dưới đây, vẫn được coi là hợp game bài đổi thưởng 2025 lệ:

1     5
2    /  \
3   2    7
4   / \
5  1   3
6       \
7        4

Nguồn bài soi kèo bóng đá hôm nay toán: LeetCode

2. Cách tiếp cận giải quyết So sánh giá trị cần chèn với giá trị của nút gốc để quyết định xem sẽ chèn nó vào cây con trái hay cây con phải. Sử dụng phương pháp đệ quy để lặp lại quá trình này cho đến khi tìm được vị trí thích hợp để chèn.

3. Mã nguồn thực hiện bằng Golang

 1func insertIntoBST(root *TreeNode, val int) *TreeNode {
 2	if root == nil {
 3		return &TreeNode{Val: val}
 4	}
 5	if val > root.Val {
 6		root.Right = insertIntoBST(root.Right, val)
 7	} else {
 8		root.Left = insertIntoBST(root.Left, val)
 9	}
10	return root
11}

![](Link hình ảnh nếu có)

#Golang #ThuậtToán