劍指offer——二叉搜尋樹和雙向連結串列
阿新 • • 發佈:2018-11-12
劍指offer題越往後感覺越不好做呀,本來是不會做,現在是難看懂了,乍一眼看這個題,二叉搜尋樹 ,先把樹給拆了,然後排個序,最後加個鏈。不過實現還是不太容易的。
class Solution:
def Convert(self,pRootOfTree):
if not pRootOfTree:
return None
#常規操作,判斷列表是否為空
self.arr=[]
self.midTraversal(pRootOfTree)
for i ,v in enumerate(self.arr[:-1 ]):
v.riget=self.arr[i+1]
self.arr[i+1].left = v
return arr[0]
#雙向連結串列也是用left and right 操作的?
def midTraversal(self,root):
if not root:
return None
self.midTraversal(root.left)
self.arr.append(root)
self.midTraversal(root.right)