2017-08-04 47 views
0

下面是我的函數removeOdds,它刪除鏈接列表中的所有奇數節點。減少擺脫鏈表中奇數節點的方法Python 3

def removeOdds(myList): 
    head=myList 
    ptr=head 
    counter=1 
    while ptr['next']['next']!=None: 
     if counter %2 != 0: 
      ptr['data'] = ptr['next']['data'] 
      ptr['next'] = ptr['next']['next'] 
      counter += 1 
     else: 
      ptr = ptr['next'] 
      counter += 1 
    counter += 1 
    if counter %2 != 0: 
     ptr['next'] = None 
    return head 

我在想,如果有,我刪除最後一個節點,如果是奇數和點無沒有我不得不退出while循環的方式。 爲了清楚起見,我的鏈接列表看起來像嵌套字典。 ex。

{'data': 9, 'next': {'data': 8, 'next': {'data': 6, 'next': {'data': 5, 
'next': {'data': 3, 'next': {'data': 2, 'next': {'data': 1, 'next': 
None}}}}}}} 

回答

0

如果你改變了迴路同時實現真正的,移動測試沒有進入死循環,並利用假期的適當條件下退出循環,我想你會發現,你不必循環外的重複代碼。