自己写的,使用广度优先BFS,迭代:
class Solution: def countNodes(self, root: Optional[TreeNode]) -> int: # 如果根节点为空,则树中节点数为 0 if not root: return 0 # 初始化队列,并将根节点放入队列中 queue = [root] # 计数器,初始值为 1,因为根节点已经算作一个节点了 count = 1 # 遍历队列,直到队列为空 while queue: # 弹出队列中的第一个节点 cur = queue.pop(0) # 如果当前节点有左子节点,将左子节点加入队列,并将计数器加一 if cur.left: queue.append(cur.left) count += 1 # 如果当前节点有右子节点,将右子节点加入队列,并将计数器加一 if cur.right: queue.append(cur.right) count += 1 # 返回计数器的值,即树中节点的总数 return count
标签:count,cur,队列,leedcode,queue,计数器,二叉树,节点 From: https://www.cnblogs.com/yyyjw/p/18073650