判断二叉树是否是完全二叉树

核心思路:
1.如果有右节点,没有左节点,直接返回False
2.如果左右节点都没有,或者只有左节点,就看看后面的节点,必须是叶节点,不能有子节点。(就是看看这是不是最后一排。)

class IsCompleteTree:
     def iscompltee(self, root):
         res = [root]
         flag = 0
         while res:
             cur = res.pop()
             if cur.left:
                 res.append(cur.left)
             if cur.right:
                 res.append(cur.right)
             if cur.right and not cur.left:
                 return False
             if flag:
                 if cur.left and cur.right:
                     return False

             if cur.left and not cur.right or (not cur.left and not cur.right):
                 flag = 1
         return True

你可能感兴趣的:(算法和数据结构,二叉树,数据结构,算法,python)