我學習Python的遞歸。我定義了一個鏈接列表,其中每個節點都有item和next。我想寫一個遞歸來把奇數和偶數放在一個單獨的集合中。返回列表的元組遞歸函數
class LinkNode(object):
"""A node in a linked list."""
def __init__(self, item, next=None):
"""(LinkNode, object, LinkNode) -> NoneType
Initialize this node to store item and next.
"""
self.item = item
self.next = next
def odd_or_even(self):
"""(LinkNode) -> ([object], [object])
Return a pair of lists: (odd number, even number.
"""
if self is None:
return ([], [])
else:
if (self.item % 2 == 1):
odd_num = odd_num.append(self.item)
else:
even_num = even_num.append(self.item)
if self.next is not None:
self.next.odd_or_even()
return (odd_num, even_num)
當我運行它,我得到了以下錯誤:
文件 「C:\ Program Files文件\永IDE 4.1 101的\ src \調試\ tserver_sandbox.py」 19行,在odd_or_even builtins.UnboundLocalError:分配之前引用局部變量「odd_num」
我應該在哪裏初始odd_num,even_num所以它不會被覆蓋?
謝謝。
非常感謝!我使用你建議的局部變量測試了代碼,它工作正常。 – duckduck 2013-03-04 12:48:40