题解 | #找到搜索二叉树中两个错误的节点#

找到搜索二叉树中两个错误的节点

http://www.nowcoder.com/practice/4582efa5ffe949cc80c136eeb78795d6

首先中序遍历搜索树,应为连续递增数列,先后找出位置错误的两个数字,从前往后找其中较大的数字,从后往前找较小的数字,最后升序输出

class Solution:
    def search_tree(self, root):
        if root == None:
            return []
        list_node = self.search_tree(root.left)
        list_node.append(root.val)
        list_node += self.search_tree(root.right)
        return list_node
    def findError(self , root: TreeNode) -> List[int]:
        # write code here
        list1 = self.search_tree(root)
        for i in range(len(list1)-1):
            if list1[i] > list1[i+1]:
                a = list1[i]
                break
        for i in range(len(list1)-1, -1, -1):
            if list1[i] < list1[i-1]:
                b = list1[i]
                break
        return [min(a, b), max(a, b)]

全部评论

相关推荐

不愿透露姓名的神秘牛友
2025-11-25 09:53
点赞 评论 收藏
分享
2025-12-19 21:53
门头沟学院 Java
想做OpenGL:不要一来就把自己定位这么低吧,把大厂当成目标,不断去学技术做项目,最后你至少能学到能找到中小厂的技术水平,你一上来就找这种两千块还要前后端都会的,其实对你用处不会很大,真去了也是打杂
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

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