标签:括号 img 二叉树 com 问题 序列 mic lan 匹配
二叉搜索树有个性质就是终须遍历时肯定是升序排列。
1 2 5 4 3 可以看到如果乱序了,那么这两个乱序节点肯定是先大后小。对于第一个节点,它属于大的那个,对于第二个节点,它属于小的那个。
# Definition for a binary tree node. # class TreeNode(object): # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution(object): def recoverTree(self, root): """ :type root: TreeNode :rtype: None Do not return anything, modify root in-place instead. """ self.node1 , self.node2 , self.pre = None,None,None def dfs(root): if root is None: return dfs(root.left) if self.pre and self.pre.val > root.val and self.node1 is None: self.node1 = self.pre if self.pre and self.pre.val > root.val and self.node1: self.node2 = root self.pre = root dfs(root.right) dfs(root) self.node1.val ,self.node2.val = self.node2.val, self.node1.val
标签:括号 img 二叉树 com 问题 序列 mic lan 匹配
原文地址:https://www.cnblogs.com/qqq1112/p/13457547.html