2017-02-22 138 views
0

所以我想用鏈接列表使用節點,尾巴和空的東西,但我不知道如何使一個summs_even或summs_odd函數。Python總結偶數和奇數與節點,尾巴,空

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

只需使用沿線'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

謝謝這真的幫助我進一步! –