zoukankan      html  css  js  c++  java
  • Leetcode练习(Python):二分查找类:第222题:完全二叉树的节点个数:说明: 完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。

    题目:
    完全二叉树的节点个数:说明:  完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。  
    思路:
    一看到二叉树,想到了递归,使用暴力法遍历所有节点。
    暂时没有想到使用二分查找的地方,之后再做补充。
    程序:
    # 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
            left_tree = root
            left_tree_node = 0
            rigth_tree = root
            right_tree_node = 0
            while left_tree:
                left_tree = left_tree.left
                left_tree_node += 1
            while rigth_tree:
                rigth_tree = rigth_tree.right
                right_tree_node += 1
            if left_tree_node == right_tree_node:
                return 2 ** (left_tree_node) - 1
            else:
                return self.countNodes(root.left) + self.countNodes(root.right) + 1
  • 相关阅读:
    魔方
    js烟花特效
    面试cookie
    扩展日期插件
    通过javascript实现1~100内能同时被2和3整除的数并生成如下表格
    用三或四个个div标签实现工字效果
    2015_WEB页面前端工程师_远程测题_东方蜘蛛_1
    js公有、私有、静态属性和方法的区别
    Docker libnetwork(CNM)设计简介
    kubernetes,Docker网络相关资料链接
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12875141.html
Copyright © 2011-2022 走看看