首页 > 其他分享 >leedcode-完全二叉树的节点个数

leedcode-完全二叉树的节点个数

时间:2024-03-14 18:23:09浏览次数:15  
标签:count cur 队列 leedcode queue 计数器 二叉树 节点

自己写的,使用广度优先BFS,迭代:

class Solution:
    def countNodes(self, root: Optional[TreeNode]) -> int:
        # 如果根节点为空,则树中节点数为 0
        if not root:
            return 0
        
        # 初始化队列,并将根节点放入队列中
        queue = [root]
        # 计数器,初始值为 1,因为根节点已经算作一个节点了
        count = 1
        
        # 遍历队列,直到队列为空
        while queue:
            # 弹出队列中的第一个节点
            cur = queue.pop(0)
            # 如果当前节点有左子节点,将左子节点加入队列,并将计数器加一
            if cur.left:
                queue.append(cur.left)
                count += 1
            # 如果当前节点有右子节点,将右子节点加入队列,并将计数器加一
            if cur.right:
                queue.append(cur.right)
                count += 1
        
        # 返回计数器的值,即树中节点的总数
        return count

 

标签:count,cur,队列,leedcode,queue,计数器,二叉树,节点
From: https://www.cnblogs.com/yyyjw/p/18073650

相关文章

  • OceanBase初体验之部署生产标准的三节点分布式集群
    前置条件OceanBase数据库集群至少由三个节点组成,所以先准备好3台服务器:IP配置操作系统x.x.x.150Intelx8612C64G内存1TSSDCentOS7.9x.x.x.155Intelx8612C64G内存1TSSDCentOS7.9x.x.x.222Intelx8612C64G内存1TSSDCentOS7.9关于运行......
  • 洛谷题单指南-二叉树-P5076 【深基16.例7】普通二叉树(简化版)
    原题链接:https://www.luogu.com.cn/problem/P5076题意解读:此题本质上是要实现一个二叉搜索树的功能。解题思路:从数据规模10^4来看,只要复杂度在n^2范围内基本上是可以通过的,下面给出两种做法:1、有序数组法对应5个操作的实现逻辑如下:操作一:查x的排名。直接通过二分查找>=x的第......
  • Kubernetes集群节点处于Not Ready问题排查
    Kubernetes集群节点处于NotReady问题排查原创 点击关注......
  • 617. 合并二叉树c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*/structTreeNode*mergeTrees(structTreeNode*root1,structTreeNode*root2){if(!root1&&!roo......
  • 257. 二叉树的所有路径c
    /***Definitionforabinarytreenode.*structTreeNode{*intval;*structTreeNode*left;*structTreeNode*right;*};*//***Note:Thereturnedarraymustbemalloced,assumecallercallsfree().*/chartemp[200]={0};v......
  • 使用Minikube 部署单节点 Kubernetes(K8s)集群通常用于开发环境或测试环境
    部署单节点Kubernetes(K8s)集群通常用于开发环境或测试环境,而不是生产环境,因为在单节点上运行的集群无法提供高可用性保证。以下是一个简化的步骤来在一台机器上部署单节点Kubernetes集群:使用Minikube部署单节点K8sMinikube是一个工具,它使得在本地机器(比如笔记本电脑)上搭建......
  • 洛谷题单指南-二叉树-P4913 【深基16.例3】二叉树深度
    原题链接:https://www.luogu.com.cn/problem/P4913题意解读:计算二叉树的深度解题思路:首先介绍二叉树的存储方式,对于本题,直接用数组模拟,数组的下标即节点号structnode{intl,r;}tree[N];tree[i].l存的是节点i的左子结点,tree[i].r存的是节点i的右子节点。计算深度至......
  • leetcode 24.两两交换链表中的节点
    24.两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例1:输入:head=[1,2,3,4]输出:[2,1,4,3]示例2:输入:head=[]输出:[]示例3:输入:head=[1]输出:[1]提......
  • 【BFS二叉树】113路径总和II
    113路径总和II给你二叉树的根节点root和一个整数目标和targetSum,找出所有从根节点到叶子节点路径总和等于给定目标和的路径。思路:题目最终输出的是路径,因此用BFS遍历的时候,需要记录走到每个节点的路径;又因为路径和是要等于某个目标值的,因此也需要记录目标和。⇒......
  • 数据结构之树(Topk问题, 链式二叉树)
    一.topk问题取N个数中最大(小)的前k个值,N远大于k这道题可以用堆的方法来解决,首先取这N个数的前k个值,用它们建堆时间复杂度O(k)之后将剩余的N-k个数据依次与堆顶数据进行比较,如果比堆顶数据大,则将堆顶数据覆盖后向下调整时间复杂度(N-k)*log(N)总共的时间复杂度为O(......