def convertBST(self, root):
"""
:type root: TreeNode
:rtype: TreeNode
"""
if not root:
return root
max_heap = []
self.makelist_traverse(root, max_heap)
heapq.heapify(max_heap)
prev_val = -heapq.heappop(max_heap)[0]
sum_val = prev_val
for i in range(len(max_heap)):
t = heapq.heappop(max_heap)[1]
cur_val = t.val
if t.val < prev_val:
t.val += sum_val
sum_val += cur_val
return root
评论列表
文章目录