所以,我正在閱讀關於鏈表和遞歸。我只是想知道爲什麼我不能在靜態無效的方法中使用遞歸?另外,我想知道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. Java鏈接列表遞歸插入
- 7. 反向鏈接列表遞歸
- 8. 鏈接列表遞歸removeAll方法
- 9. 遞歸反向鏈接列表
- 10. 插入排序 - 鏈接列表 - 遞歸
- 11. 鏈表列表與遞歸
- 12. 鏈表遞歸...
- 13. 遞歸/鏈表
- 14. 鏈表,遞歸
- 15. 遞歸硬鏈接
- 16. 遞歸MSI鏈接
- 17. 遞歸鏈接c#
- 18. 遞歸列表連接
- 19. 鏈表的遞歸
- 20. 遞歸toString在Java中的隊列鏈接列表
- 21. 如何以遞歸方式通過鏈接列表引用作爲參數傳遞鏈接列表[作業]
- 22. Scrapy遞歸鏈接爬蟲
- 23. 遞歸鏈接記錄
- 24. 遞歸列表
- 25. 遞歸列表
- 26. 以遞歸方式添加節點項目。鏈接列表
- 27. 鏈接列表:使用遞歸插入一個節點
- 28. 鏈接列表使用遞歸方法獲取方法
- 29. 使用鏈接列表的Java遞歸二項式係數
- 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