首页 > 其他分享 >完全二叉树的公共父结点

完全二叉树的公共父结点

时间:2023-12-24 19:33:58浏览次数:40  
标签:结点 return int 二叉树 && 公共 query root

1.有点后序遍历的思想,就是先把左子树,右子树的结果算出来,然后合并到根节点。
2.合并时四种情况分类讨论.
3.对于遇到要找的点就可以直接返回,不管另一个点在这个点下面还是在别的子树上,都是正确的

int n, m;
int a[N];
int query(int root,int x,int y){
	//cerr<<root<<endl;
	if(root>max(x,y))return -1;
	if(root==x||root==y)return root;
	int l=query(2*root,x,y);
	int r=query(2*root+1,x,y);
	if(l==-1&&r==-1)return -1;
	if(l!=-1&&r!=-1)return root;
	if(l!=-1&&r==-1)return l;
	if(l==-1&&r!=-1)return r;
}
void solve(){
	int x,y;
	while(cin>>x>>y,x!=0){
		cout<<query(1,x,y)<<endl;
	}
	
}
int main() {
    cin.tie(0);
    
    ios::sync_with_stdio(false);

    int t;
   //cin>>t;
     t=1;
    while (t--) {
solve();
    }
    return 0;
}

标签:结点,return,int,二叉树,&&,公共,query,root
From: https://www.cnblogs.com/mathiter/p/17924756.html

相关文章

  • 给出中序和按层遍历,求该树的先序遍历,后序遍历,叶子结点。
    一切的核心是怎么利用中序和按层遍历构建二叉树?1.优化空间很大,可以提前预处理记录每个数对应的位置,还可以vis数组记录这个点是不是已经作为根了。2.我们考虑到每次找到当前中序要处理区间,里面的数记为集合mid,我们从前到后看层序遍历中的哪个数最先出现在mid中。那么这个数就是当......
  • Python算法——最近公共祖先
    Python中的最近公共祖先(LowestCommonAncestor,LCA)算法详解最近公共祖先(LowestCommonAncestor,LCA)是二叉树中两个节点的最低共同祖先节点。在本文中,我们将深入讨论最近公共祖先问题以及如何通过递归算法来解决。我们将提供Python代码实现,并详细说明算法的原理和步骤。最近公共祖先......
  • 637. 二叉树的层平均值
    目录题目题解:BFS题目给定一个非空二叉树的根节点root,以数组的形式返回每一层节点的平均值。与实际答案相差10-5以内的答案可以被接受。题解:BFSclassSolution:defaverageOfLevels(self,root:Optional[TreeNode])->List[float]:q=[root]#用列表做......
  • 二叉树给出先序和中序遍历序列,求和树 要求输出中序遍历序列;
    1.就算不知道用vector的初始化,也可以手动赋值创建子数组。2.不断找到当前序列对应的根节点,计算他的子节点的总和,在这样递归处理过程中,注意要中序输出,所以对于是先遍历完左子树,然后输出答案,然后遍历右子树#include<bits/stdc++.h>usingnamespacestd;#definelllonglong//......
  • 二叉树已经知道先序中序推后序
    https://www.acwing.com/problem/content/3601/不断找新的先序的根节点,根据位置切割中序,根据中序左右子树大小反切割先序,找到左子树对应的先序中序,然后递归处理#include<stdio.h>#include<vector>#include<map>#include<algorithm>#include<algorithm>#include<iostream>......
  • 【力扣】-14. 最长公共前缀|刷题打卡-JS
    编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提示:1<=strs......
  • 7-3 最长公共子序列
    7-3最长公共子序列一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=<x1,x2,…,xm>,则另一序列Z=<z1,z2,…,zk>是X的子序列是指存在一个严格递增的下标序列<i1,i2,…,ik>,使得对于所有j=1,2,…,k有:Xij=Zj例如,序列Z=<B,C,D,B>是序列X=<A,B,C,B,D,A,B......
  • 最大公共子图(MCS)的大小、子图编辑距离和嵌入距离
    最大公共子图(MCS)的大小、子图编辑距离和嵌入距离是图匹配和图相似性度量中的常见概念,它们用于比较两个图之间的相似性。以下是它们的定义:最大公共子图(MCS)的大小:定义:最大公共子图是两个图中具有相同结构的最大子图。即,在两个图中找到一个共同的子图,使得这个子图不能再扩展,即......
  • Jmeter:定义公共变量
    一前言环境:window10Jmeter5.3在jmeter中诸如一些协议名称、域名或其它会多次重复输入的值,我们可以定义一些变量来关联这些值,在需要输入的地方输入变量名称jmeter就会识别出变量所指代的具体值二例子在jmeter中定义公共变量常用的有2个地方,一个是testplan,一个是userdefi......
  • C++U5-11-特殊二叉树
    学习目标 完全二叉树:二又树拥有的性质,在完全二叉树中都拥有 性质 练习1 练习2 练习3编程题:[完全二叉树的叶子结点]【算法分析】递归,前序遍历输出。【参考代码】#include<iostream>usingnamespacestd;constintSIZE=1010;structnode{......