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