您好,我想知道是否有方法通過函數遞歸而不改變變量的值。如何在不改變變量的情況下進行遞歸
這裏是我的代碼:
def helper_list_range(self, low, high, rangelist):
if self is EmptyValue:
return rangelist
else:
if self.left is not None and self.right is not None:
if self.root <= high and self.root >= low:
rangelist.append(self.root)
self.left.helper_list_range(rangelist)
self.right.helper_list_range(rangelist)
return rangelist
def list_range(self, low, high):
rangelist = []
self.helper_list_range(low, high, rangelist)
return rangelist
正如你可以看到,我使用一個輔助函數,這樣我追加到rangelist,而不改變其價值時,這個函數執行遞歸。
我想知道有沒有一種方法可以做到這一點,而無需使用輔助函數。使用輔助函數似乎有點模糊。
幫助函數與「附加到範圍列表而不更改其值」無關。幫助函數是完成所有工作的東西,使用從主函數傳入的空列表。 – 2014-11-02 19:11:08
是的,我在主函數中創建了空列表,但是如果我是在輔助函數中創建它的話。該列表將再次變爲空。一旦函數遞歸。所以我想知道,如果我們可以使用與遞歸發生在同一個函數中的列表 – Andre 2014-11-02 19:12:36