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]

全部评论

相关推荐

10-30 19:23
已编辑
山东大学(威海) C++
牛至超人:其实简历是不需要事无巨细的写的,让对方知道你有这段经历就行了,最重要的是面试的时候讲细讲明白
点赞 评论 收藏
分享
10-13 13:49
南京大学 财务
饿魔:笑死我了,你简直是个天才
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务