99. 恢复二叉搜索树
解法一:中序
class Solution:
def recoverTree(self, root: TreeNode) -> None:
"""
Do not return anything, modify root in-place instead.
"""
vals = []
def traval(root): #函数,中序遍历记录所有结点
if not root:
return
traval(root.left)
vals.append(root.val)
traval(root.right)
traval(root)
vals.sort() #值排序
def fill(root): #函数,第二次遍历,依次填入新值
if not root:
return
fill(root.left)
root.val = vals[0]
vals.pop(0)
fill(root.right)
fill(root)解法二:中序,空间复杂度O(1)
最后更新于