cuốn sách gpt4 ai đã làm

Có gì sai với phương pháp tìm kiếm cây không nhị phân (cây n-ary) của tôi?

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 08:10:06 29 4
mua khóa gpt4 Nike

Xin chào, tôi có mã này để tìm kiếm cây n-ary nhưng nó không hoạt động bình thường và tôi không biết nó có vấn đề gì. Khi tìm kiếm n4 và n5, nó trả về n3. nhập mô tả hình ảnh ở đây

công khai FamilyNode findNodeByName(FamilyNode nodeName ){
if(this.name.equals(nodeName.name)){
// Chúng tôi đã tìm thấy một nút có tên nodeName, hãy trả lại nó
return this;
}
// Người bạn đang tìm không phải là tôi, hãy xem các con tôi nhé

for(FamilyNode child : this.children){
if(child.findNodeByName(nodeName) != null)
trả lại con;
// Chúng tôi đã tìm thấy thứ chúng tôi đang tìm kiếm, chỉ cần quay lại từ đây
// trả về con;

}
// Hoàn tất việc lặp qua tất cả các nút và không tìm thấy nút nào, trả về null
return null;
}

câu trả lời hay nhất

Lý do là vì bạn đang trả về nút nơi tìm thấy nút đó. Khi một nút được tìm thấy, bạn cần trả về nút đó và nếu tìm thấy FamilyNode, bạn cần trả về nút cha của FamilyNode được tìm thấy. nghiên cứu thành lập Biến đó làm gì.

Bạn cần phải làm một cái gì đó như thế này:

Đã tìm thấy FamilyNode = child.findNodeByName(nodeName);
if(tìm thấy != null)
tìm thấy trở lại;

Toàn bộ phương pháp trông như thế này:

công khai FamilyNode findNodeByName(FamilyNode nodeName ){
if(this.name.equals(nodeName.name)){
return this;
}
for(FamilyNode child : this.children){
Đã tìm thấy FamilyNode = child.findNodeByName(nodeName);
if(tìm thấy != null)
tìm thấy trở lại;
}
return null;
}

Có gì sai với phương pháp tìm kiếm cây không nhị phân (cây n-ary) của tôi? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/11373249/

29 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress