1. 程式人生 > >劍指offer——二叉搜尋樹和雙向連結串列

劍指offer——二叉搜尋樹和雙向連結串列

劍指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)