所以,我正在閱讀關於鏈表和遞歸。我只是想知道爲什麼我不能在靜態無效的方法中使用遞歸?另外,我想知道Java在鏈表中的遞歸,爲什麼你可以在打印或搜索節點時使用static void。謝謝。鏈接列表遞歸
Q
鏈接列表遞歸
1
A
回答
1
使用遞歸時可以使用靜態方法。你只需要傳遞在函數內部工作所需的所有信息。隨着鏈表列表的遞歸被強烈鼓勵,因爲它們是如何設計的(每個節點都包含對下一個節點的引用以及(有時)其前一個節點的引用)。
+0
根據JIT編譯器執行尾遞歸優化的能力,遞歸處理長鏈表可能導致堆棧溢出。 – 2009-11-05 01:31:23
4
您可以在靜態void的函數中使用遞歸。它只能通過副作用來回報它的價值或做它應該做的事情,這通常被認爲是有害的。但是對於印刷來說,這非常合理。
static void printList(node)
{
if (node != null)
{
print(node);
printList(node.next);
}
}
相關問題
- 1. 反向鏈接列表遞歸
- 2. 鏈接列表遞歸方法
- 3. 追加與遞歸鏈接列表
- 4. 鏈接列表中的遞歸
- 5. 遞歸反向鏈接列表
- 6. 插入排序 - 鏈接列表 - 遞歸
- 7. Java鏈接列表遞歸插入
- 8. 鏈表列表與遞歸
- 9. 遞歸/鏈表
- 10. 鏈表遞歸...
- 11. 鏈表,遞歸
- 12. 遞歸硬鏈接
- 13. 遞歸列表連接
- 14. 遞歸鏈接記錄
- 15. 遞歸列表
- 16. 鏈接列表Java中的節點作爲參數的遞歸
- 17. 刪除鏈接列表中的重複值(Java中的遞歸)
- 18. 如何使用類鏈接列表執行遞歸打印
- 19. 如何通過遞歸添加鏈接列表中的元素?
- 20. 以遞歸方式刪除指定數據的鏈接列表
- 21. 使用遞歸的反向鏈接列表
- 22. 鏈接列表:使用遞歸插入一個節點
- 23. 鏈接列表遞歸...爲什麼我需要return語句?
- 24. 使用鏈接列表的Java遞歸二項式係數
- 25. 鏈接列表離開遞歸函數後丟失節點
- 26. 從鏈接列表中刪除元素(通過遞歸)
- 27. C++ reversePrint鏈表遞歸
- 28. 反向鏈表 - 遞歸
- 29. 倒車鏈表遞歸
- 30. 雙鏈表通過遞歸
哪種特定的編程語言? – Derek 2009-11-04 23:16:47
它看起來像它的Java或C#問題,給定了上下文和返回值。 (根據上下文,C++是不太可能的) – monksy 2009-11-04 23:19:13
是的!你的Java是正確的。 – Cruiser 2009-11-04 23:21:39