zoukankan      html  css  js  c++  java
  • LeetCode 222. 完全二叉树的节点个数

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

    Difficulty: 中等

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

    说明:

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

    示例:

    输入: 
        1
       / 
      2   3
     /   /
    4  5 6
    
    输出: 6
    

    Solution

    Language: 全部题目

    方法一:简单粗暴的层序遍历,BFS+队列实现,不过效率不高。

    # Definition for a binary tree node.
    # class TreeNode:
    #     def __init__(self, x):
    #         self.val = x
    #         self.left = None
    #         self.right = None
    ​
    class Solution:
        def countNodes(self, root: TreeNode) -> int:
            if not root: return 0
            queue, res = [root], 0
            
            while queue:
                size = len(queue)
                for i in range(size):
                    node = queue.pop(0)
                    if node.left:
                        queue.append(node.left)
                    if node.right:
                        queue.append(node.right)
                    res += 1
            return res
    
  • 相关阅读:
    Cake
    抽屉评论数据库设计
    学习网站
    栈和堆简介
    链表相关操作
    链表操作
    Django form验证二
    django ajax提交form表单数据
    jquery中 after append appendTo 的区别
    Python json.dumps 自定义序列化操作
  • 原文地址:https://www.cnblogs.com/swordspoet/p/14070272.html
Copyright © 2011-2022 走看看