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
  • 相关阅读:
    团队项目第二阶段个人进展——Day9
    团队项目第二阶段个人进展——Day8
    团队项目第二阶段个人进展——Day7
    团队项目第二阶段个人进展——Day6
    团队项目第二阶段个人进展——Day5
    团队项目第二阶段个人进展——Day4
    团队项目第二阶段个人进展——Day3
    团队项目第二阶段个人进展——Day2
    团队项目第二阶段个人进展——Day1
    人机交互设计——课后作业
  • 原文地址:https://www.cnblogs.com/zhuozige/p/12875141.html
Copyright © 2011-2022 走看看