核心思路: 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
转载请注明原文地址:https://ipadbbs.8miu.com/read-1799.html