私はPythonの再帰を学んでいます。各ノードがitem
、next
および を持つリンク リストを定義しますlevel
。先頭から末尾までのレベルを 0, 1, 2... で設定する再帰を書きたい
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 have next and level 0.
"""
self.item = item
self.left = next
self.level = 0 # the level of the link
def set_level(self, level):
"""(LinkNode, int) -> NoneType
Set the level attribute of every node in the list
for example: first node is 0, second is 1, third is 3...
"""
if self is None:
pass
else:
self.level = level
levle = level + 1
self.set_level(self.next, level)
しかし、実行すると、次のエラーが発生しました。
File "C:\Program Files\Wing IDE 101
4.1\src\debug\tserver\_sandbox.py", line 29, in <module> File "C:\Program Files\Wing IDE 101 4.1\src\debug\tserver\_sandbox.py",
line 21, in set_level builtins.TypeError: set_level() takes exactly 2
positional arguments (3 given)
再帰呼び出しに問題はありますか?