day16| 222.完全二叉树的节点个数

发布时间 2023-04-02 21:12:48作者: blueCP1999

104和111题见前一天

 

222.完全二叉树的节点个数

 

题目简述:

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。

完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2^h 个节点。

 

思路:

同昨天利用层序遍历实现

 

代码如下:

class Solution:
    def countNodes(self, root: Optional[TreeNode]) -> int:
        results=0
        if not root:
            return results
        
        que=collections.deque([root])

        while que:
            n=len(que)
            results+=n
            for i in range(n):
                cur=que.popleft()
                if cur.left:
                    que.append(cur.left)
                if cur.right:
                    que.append(cur.right)
        
        return results

 

递归解法以后再补