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
  • 相关阅读:
    oracle数据类型
    hive的union,hive连接查询的优化,mapjoin的设置参数
    hive分隔符
    hive load数据到表的方式
    hive的常用命令操作与数据类型以及hive的严格模式
    hadoop fs 与 dfs 的区别
    pl/sql程序语法,存储过程, orcle服务
    mysql连接启动
    HTTP协议
    php6
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12875141.html
Copyright © 2011-2022 走看看