题解 | #二叉搜索树与双向链表#

二叉搜索树与双向链表

http://www.nowcoder.com/practice/947f6eb80d944a84850b0538bf0ec3a5

#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#
# 
# @param pRootOfTree TreeNode类 
# @return TreeNode类
#
class Solution:
    def Convert(self , pRootOfTree ):
        # write code here
        if not pRootOfTree:
            return None
        minRes = []
        def midTraverse(root):
            if not root:
                return None
            midTraverse(root.left)
            minRes.append(root)
            midTraverse(root.right)
        midTraverse(pRootOfTree)
        # 主要是利用v和minRes两种表示法来改变双向链表的指针
        for k,v in enumerate(minRes[0:len(minRes)-1]):
            v.right = minRes[k+1]
            minRes[k+1].left = v
        print(minRes)
        return minRes[0]
            

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务