欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

判断一棵树是否是完全二叉树(python)

程序员文章站 2022-05-16 11:23:07
...

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

res=[root]
flag=0
while res:
	tmp=res.pop(0)
	if tmp.left:
		res.append(tmp.left)
	if tmp.right:
		res.append(tmp.right)
	if tmp.right and not tmp.left:
		return False
	if flag:
		if tmp.left or tmp.right:
			return False
	#左右节点都没有,或者只有左节点
	if (tmp.left and not tmp.right) or (not tmp.left and not tmp.right):
		flag=1
return True