Recover Binary Search Tree (Leetcode 99)
Problem Link: https://leetcode.com/problems/recover-binary-search-tree/
class Solution:
def recoverTree(self, root: Optional[TreeNode]) -> None:
"""
Do not return anything, modify root in-place instead.
"""
self.first=None
self.middle=None
self.last=None
self.prev=TreeNode(float('-inf'))
def inorder(root):
if(root is None):
return
inorder(root.left)
print(root.val)
if(self.first is None):
if(root.val<self.prev.val):
self.first=self.prev
self.middle=root
else:
if(root.val<self.prev.val):
self.last=root
self.prev=root
inorder(root.right)
inorder(root)
if(self.last is None):
self.first.val,self.middle.val=self.middle.val,self.first.val
else:
self.first.val,self.last.val=self.last.val,self.first.val
PreviousCount Good Nodes in Binary Tree (Leetcode 1448)NextReverse Odd Levels of Binary Tree (Leetcode 2415)
Last updated