2017-08-04 3 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ループを終了することなく、Noneに奇妙だとの点なら、私は最後のノードを削除するための方法がある場合、私は思っていました。 わかりやすくするために、私のリンクリストはネストされた辞書のように見えます。 ex。

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

答えて

0

あなたは、真ながらにループを変更するループになしのためのテストを移動し、適切な条件の下でループを終了するためにブレークを使用する場合、私はあなたがする必要がないことを見つけると思いますよループの外側にコードを複製します。

関連する問題