Abuse of List的解法,不在树上做文章
题目深入分析,其实常规搜索二叉树在中序遍历下就是一个严格单调递增的数列,那么只要对比即可找出异常两点,并且按照从左往右顺序,第一个异常点一定是较大值。
class Solution: def findError(self , root: TreeNode) -> List[int]: # write code here res = [] def iterate(root): if root: iterate(root.left) res.append(root.val) iterate(root.right) return res arr = iterate(root) arr_comp = sorted(arr) res = [] for i in range(len(arr)): if arr[i] != arr_comp[i]: res.append(arr[i]) return res[::-1]