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]

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务