การย้อนกลับรายการที่เชื่อมโยงใน Java แบบวนซ้ำ
ฉันทำงานกับโปรเจ็กต์ Java สำหรับชั้นเรียนมาระยะหนึ่งแล้ว เป็นการนำรายการที่เชื่อมโยงไปใช้งาน (ที่นี่เรียกว่าAddressListมีโหนดอย่างง่ายที่เรียกว่าListNode) สิ่งที่จับได้คือทุกอย่างจะต้องทำด้วยอัลกอริธึมแบบวนซ้ำ ฉันสามารถทำทุกอย่างได้ดีโดยใช้วิธีเดียว:public AddressList reverse() ListNode: public class ListNode{ public String data; public ListNode next; } ตอนนี้reverseฟังก์ชันของฉันเรียกใช้ฟังก์ชันตัวช่วยที่ใช้อาร์กิวเมนต์เพื่ออนุญาตให้เรียกซ้ำ public AddressList reverse(){ return new AddressList(this.reverse(this.head)); } ด้วยฟังก์ชันตัวช่วยของฉันมีลายเซ็นของ private ListNode reverse(ListNode current) . ในขณะนี้ฉันทำงานซ้ำ ๆ โดยใช้สแต็ก แต่นี่ไม่ใช่สิ่งที่ข้อกำหนดต้องการ ฉันพบอัลกอริทึมใน C ที่ย้อนกลับซ้ำและแปลงเป็นโค้ด Java ด้วยมือและมันใช้งานได้ แต่ฉันไม่เข้าใจมัน แก้ไข: ไม่เป็นไรฉันคิดออกในระหว่างนี้ private AddressList reverse(ListNode current, …