2016-04-25 47 views
0

我有一個節點,我需要通過Python中的遞歸進行反轉。我用下面的代碼:通過遞歸來反轉節點

class Node: 
    def __init__(self, value): 
     ''' 
     Initiate a node 
     :param value: float | int | str 
     ''' 
     self.value = value 
     self.nxt = None 

def reverse(n): 
    """ 
    Reverse a given linked-node 
    :param n: Node 
    :return: None 
    """ 
    if n is None or n.nxt is None: 
     return 
    else: 
     rest = n.nxt 
     n.nxt = None 
     reverse(rest) 
     #reach the end of rest 
     current = rest    
     while current.nxt: 
      current = current.nxt 
     current.nxt = n 
     n = rest 

因爲改變n的值只是改變它的引用而不是實際的節點這並不當然的工作,所以結果我得到的僅僅是在同一個節點,其未來=無! 有什麼幫助?

回答

0

我做了一些調整,它的工作原理:

​​
+0

你不能使用分組也不編輯類的構造函數,也沒有添加的參數。這是考試的問題。更何況你需要在這裏改變不返回一個新的節點。 但謝謝你試圖幫助。 –