题解 | #二叉搜索树与双向链表#
二叉搜索树与双向链表
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]