2017-02-22 14 views
0

ノード、テール、空を使ってリンクリストを試していますが、summs_even関数やsumms_odd関数を作成する方法についての手がかりはありません。Python偶数と奇数をNode、tail、Emptyで合計します。

class Node: 
    def __init__(self, value, tail): 
     self.IsEmpty = False 
     self.Value = value 
     self.Tail = tail 

    def __str__(self): 
     return str(Node) 

class Empty: 
    def __init__(self): 
     self.IsEmpty = True 

Empty = Empty() 

l = Node(1, Node(2, Node(3, Node(4, Empty)))) 

def summ(l): 
    if l.IsEmpty: 
     return 0 
    else: 
     return l.Value + summ(l.Tail) 
print("Sum: " + str(summ(l))) 
+0

だけで2つの要素をスキップするために行 'l.Tail.Tail'に沿って何かを使用します。しかし、これは、あなたが終わりを超えようとしていないことを保証するために、より多くのチェックが必要です。 – languitar

+0

テールは、通常、リスト全体の終わりを意味します。次はより良い名前になります –

答えて

0

線に沿って何か

def summ_even(l): 
    if l.IsEmpty: 
     return 0 
    elif l.Value%2==1: # check if value is odd 
     return summ_even(l.Tail) 
    else: 
     return return l.Value + summ_even(l.Tail) 
+0

これは本当に私をさらに助けてくれてありがとう! –

関連する問題