首先为了巩固BFS(广度优先运算)我先尝试了用BFS解决本题
先是将root转化为集合queue,同时提前计算最顶部的节点变ans为1
之后开始遍历,先遍历每层的节点
设置一个节点remaining等于每次删除的栈
同时判断删除的节点位置将remaining重新加入二叉树中
同时节点数+=1
最后全部把queue遍历完之后返回ans就是节点数了
class Solution:
def countNodes(self, root: TreeNode) -> int:
if not root:
return 0
queue = [root]
ans = 1
while queue:
remaining = queue