题解 | #判断一棵二叉树是否为搜索二叉树和完全二叉树#

判断一棵二叉树是否为搜索二叉树和完全二叉树

http://www.nowcoder.com/practice/f31fc6d3caf24e7f8b4deb5cd9b5fa97

平衡二叉树

中序遍历,当前节点值不小于前一个节点值
不能如下直接赋值,会覆盖
self.is_search_tree = (self.pre.val >= root.val)

完全二叉树

思路一:将所有的结点全部押入队列中,空也压入,每次判断队列的头如果队列头为空了则跳出循环,如果此后队列中还有元素则不是完全二叉树。

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#
# 
# @param root TreeNode类 the root
# @return bool布尔型一维数组
#
class Solution:
    def judgeIt(self , root ):
        # write code here
        self.is_search_tree = True
        self.is_complete_tree = True
        self.pre = None
        def inorder(root):
            if root is None or not self.is_search_tree:
                return
            inorder(root.left)
            if self.pre is not None:
                self.is_search_tree = self.is_search_tree and not (self.pre.val >= root.val)
            self.pre = root
            inorder(root.right)
        inorder(root)

        def is_conplete_tree(root):
            if root is None:
                return True
            queue = [root]
            cur = queue.pop(0)
            while cur:
                queue.append(cur.left)
                queue.append(cur.right)
                cur = queue.pop(0)
            for q in queue:
                if q is not None:
                    return False
            return True
        self.is_complete_tree = is_conplete_tree(root)
        return [self.is_search_tree, self.is_complete_tree]
全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 一张图晒出你司的标语 #
4329次浏览 75人参与
# AI面会问哪些问题? #
27913次浏览 554人参与
# 厦门银行科技岗值不值得投 #
8037次浏览 188人参与
# 你的实习产出是真实的还是包装的? #
20214次浏览 342人参与
# 找AI工作可以去哪些公司? #
9132次浏览 233人参与
# 春招至今,你的战绩如何? #
65327次浏览 582人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
15241次浏览 221人参与
# 从事AI岗需要掌握哪些技术栈? #
8977次浏览 305人参与
# 中国电信笔试 #
32012次浏览 292人参与
# 你做过最难的笔试是哪家公司 #
33585次浏览 232人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
340831次浏览 2174人参与
# 阿里笔试 #
178604次浏览 1316人参与
# 哪些公司真双非友好? #
69600次浏览 289人参与
# 机械人避雷的岗位/公司 #
62704次浏览 393人参与
# 第一份工作一定要去大厂吗 #
14651次浏览 122人参与
# 金三银四,你的春招进行到哪个阶段了? #
22091次浏览 280人参与
# 为了减少AI幻觉,你注入过哪些设定? #
26257次浏览 310人参与
# 沪漂/北漂你觉得哪个更苦? #
9874次浏览 193人参与
# 应届生第一份工资要多少合适 #
20685次浏览 86人参与
# HR最不可信的一句话是__ #
6291次浏览 114人参与
# AI时代,哪个岗位还有“活路” #
11560次浏览 345人参与
# 春招你拿到offer了吗 #
831270次浏览 9987人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务