首页 > 其他分享 >algo 完全二叉树

algo 完全二叉树

时间:2024-05-17 19:45:33浏览次数:24  
标签:node int 完全 --- 二叉树 bits algo

性质1:

  • 左子树的深度等于右子树 --- 左为满,右为完全
  • 左子树的深度大于右子树 --- 左为完全,右为满

一个完全二叉树的左右子树都是完全二叉树

  • 不断递归之后 --- 最后都是满二叉树 --- 只剩一个节点

性质2

可以和位运算进行结合

https://leetcode.cn/problems/count-complete-tree-nodes/solutions/181466/c-san-chong-fang-fa-jie-jue-wan-quan-er-cha-shu-de/

简单来说就是

bool exist(TreeNode* root, int level, int k){
	int bits =  1 << (level-1);

	TreeNode* node = root;
	while(node!=nullptr && bits > 0){
		if(!(bits&k)){
			node = node -> left;
		}else{
			node = node -> right;
		}

		bits >>= 1;
	}

	return node != nullptr;
}
  • level 为树的深度
  • k 为 第 N 个节点
  • root 为 根节点

![[tree.excalidraw]]

标签:node,int,完全,---,二叉树,bits,algo
From: https://www.cnblogs.com/bigsharker/p/18198469

相关文章

  • algo c++ 常用接口
    接口网站cppreferencesetunorder_set//unorder_setunorder_set<T>u_set;//insertu_set.insert(Tt);//findandjudgeiteratorit=u_set.find(Tt);if(u_set.find(t)!=it.end()){}//删除u_set.erase(t);技巧如果想要通过一种数据类型种的值构建另一种......
  • DataStruct 二叉树
    二叉树的分类满二叉树:节点数量:$2^k-1$完全二叉树:应用:heap二叉搜索树规则:左不空,则左右节点都小于根节点右不空,则右变的节点都大于根节点左右子树都是二叉搜做树平衡二叉搜索树AVL(Adelson-VelskyandLandis)树左右子树的高度差的绝对值小于1应用:......
  • 279. 完全平方数
    给你一个整数n,返回和为n的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。示例1:输入:n=12输出:3解释:12=4+4+4示例2:输入:n=13输出:2解释:13=4......
  • 《Linux内核完全注释》学习笔记:2.3 Linux系统定时
    在Linux0.11内核中,PC的可编程定时芯片Intel8253被设置成每隔10ms就发出一个时钟中断(IRQ0)信号。这个时间节拍就是系统运行的脉搏,我们称之为1个系统滴答。因此每经过1个滴答就会调用一次时钟中断处理程序(timer_interrupt)。该处理程序主要用来通过jiffies变量来累计自......
  • 《Linux内核完全注释》学习笔记:2.1 Linux内核模式和体系结构
    2.1Linux内核模式和体系结构操作系统主要由4部分组成:硬件、操作系统内核、操作系统服务用户应用程序图2-1操作系统组成部分用户应用程序:指那些字处理程序、互联网浏览器程序或用户自行编制的各种应用程序;操作系统服务程序:指向用户提供的服务,被看作是操作系统部分功能......
  • 《Linux内核完全注释》学习笔记:2.2 Linux中断机制
    在使用80x86组成的PC中,采用了两片8259A可编程中断控制芯片。每片可以管理8个中断源。通过多片的级联方式,能构成最多管理64个中断向量的系统。在PC/AT系列兼容机中,使用了两片8259A芯片,共可管理15级中断向量。其级联示意图见图2-5。其中从芯片的INT引脚连接到主芯片的IR2引......
  • 【强化学习】A grid world 值迭代算法 (value iterator algorithm)
    强化学习——值迭代算法代码是在jupyternotebook环境下编写只需要numpy和matplotlib包。此代码为学习赵世钰老师强化学习课程之后,按照公式写出来的代码,对应第四章第一节valueiteratoralgorithm可以做的实验:调整gama值观察策略的变化调整惩罚值(fa)的大小观察......
  • [Algorithm] Prim's Algorithm
    Prim'salgorithmisapopularmethodusedincomputerscienceforfindingaminimumspanningtreeforaconnected,undirectedgraph.Thismeansitfindsasubsetoftheedgesthatformsatreethatincludeseveryvertex,wherethetotalweightofall......
  • 使用 Playwright 脚本录制简化自动化测试:完全指南
    前言自动化测试是软件开发中的重要环节,它可以提高测试效率和代码质量。然而,编写自动化测试脚本可能需要花费大量时间和精力。为了简化这一过程,Playwright提供了一个强大的功能,称为脚本录制,它可以帮助开发人员通过交互式操作自动生成测试脚本。本文将深入介绍如何使用Playwrigh......
  • 解锁弹框:Python 下的 Playwright 弹框处理完全指南
    前言在Web自动化测试中,处理弹框是一项常见的任务。弹框可能包括警告、确认和提示框。Playwright是一个功能强大的自动化测试工具,提供了处理这些弹框的灵活方法。在本文中,我们将深入探讨如何使用Python编写代码来处理各种类型的弹框。弹框的分类弹框通常分为3种,分别为aler......