判断是否完全二叉树

# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param root TreeNode类 
# @return bool布尔型
#
class Solution:
    def isCompleteTree(self , root: TreeNode) -> bool:
        # write code here
        # 判断完全二叉树:层序遍历,设置flag 判断当前节点是否存在
        
        if not root:
            return 
        node_lst = []
        node_lst.append(root)
        flag = False
        
        while node_lst:
            layer_node = []
            while node_lst:
                cur = node_lst.pop(0)
                if not cur:
                    flag =  True
                else:
                    if flag:
                        return False
                    layer_node.append(cur.left)
                    layer_node.append(cur.right)
            
            node_lst.extend(layer_node)
                
        return True
                
                

猜你喜欢

转载自blog.csdn.net/qq_36533552/article/details/125293113