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]

