2 回答

TA貢獻1770條經驗 獲得超3個贊
將它們作為參數傳遞,默認 = None:
def convert(root, prev = None, head = None):
if root is None:
return
convert(root.left, prev=prev, head=head)
if head== None:
head = root
prev = root
else:
root.left = prev
prev.right = root
prev = root
convert(root.right, prev=prev, head=head)

TA貢獻1805條經驗 獲得超10個贊
我認為你需要返回鏈表的頭。
不管怎樣,你可以包裝你的函數來為這兩個變量創建一個閉包:
def convert(root):
head = None
prev = None
def recur(cur):
nonlocal prev, head
if cur is None:
return
recur(cur.left)
if head is None:
head = cur
else:
cur.left = prev
prev.right = cur
prev = cur
recur(cur.right)
recur(root)
return head
添加回答
舉報