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

猜你喜欢

转载自blog.csdn.net/weixin_40732844/article/details/82705753