NOIP2019 PJ 对称二叉树】的更多相关文章

题目描述 一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树: 二叉树: 将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等. 下图中节点内的数字为权值,节点外的 id 表示节点编号. 现在给出一棵二叉树,希望你找出它的一棵子树,该子树为对称二叉树,且节点数最多.请输出这棵子树的节点数. 注意:只有树根的树也是对称二叉树.本题中约定,以节点 T 为子树根的一棵"子树"指的是:节点 T 和它的全部后代节点构成的二叉树. 输入 第一行一个正整数 n,表示给定的树…
题目大意:问一棵有根带权二叉树中最大的对称二叉树子树,对称二叉树为需满足将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等. 题解:在对称二叉树中,对于深度相同的两个节点$u,v$,必定有$ls(u)=rs(v)$,$rs(u=ls(v)$,并且$val(u)=val(v)$,对每个点跑一遍深搜就可以了.发现跑一个点最多遍历它子树中较少的一棵子树.复杂度为$O(n\log_2n)$ 卡点:无 C++ Code: #include <iostream> #define max…
啊喂,都已经9102年了,你还在想去年? 这里是一个Noip2018年PJ第二题打爆的OIer,错失省一 但经过了一年,我学到了很多,也有了很多朋友,水平也提高了很多,现在回看当时: 今年的Noip CSP也快要开始了,想在这里写下这篇题解,仅以此篇献给当时的自己和以后的OI路. 正文开始: T1:标题统计 题面: 首先简化一下题目--给定一个仅含大 小写字母,数字,与空格的长度不超过5的字符串,求去掉空格后还有几个字符 Noip惯例,第一题依旧是签到题,但是考了字符串,要是不懂关于字符串的输入…
对称二叉树,就是左节点的左节点等于右节点的右节点,左节点的右节点等于右节点的左节点. 很自然就想到迭代与递归,可以创建一个新的函数,就是另一个函数不断的判断,返回在主函数. class Solution { public boolean isSymmetric(TreeNode root) { if(root == null) { return true; } else return test(root.left,root.right); } public boolean test(TreeNo…
101. 对称二叉树 (1过) 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的. 1 / \ 2 2 / \ / \ 3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 1 / \ 2 2 \ \ 3 3 说明: 如果你可以运用递归和迭代两种方法解决这个问题,会很加分. 我的层次遍历: 注意由于下列情况null-3-null-3的存在,和一般的树的层次不一样: 1   / \  2   2   \   \…
题目大意:定义对称二叉树为每个节点的左右子树交换后与原二叉树仍同构的二叉树,求给定的二叉树的最大对称二叉子树的大小. 代码如下 #include <bits/stdc++.h> using namespace std; const int maxn=1e6+10; struct node{ int l,r,size,val; }t[maxn]; int n,ans; void read_and_parse(){ scanf("%d",&n); for(int i=1…
对称二叉树的含义非常容易理解,左右子树关于根节点对称,具体来讲,对于一颗对称二叉树的每一颗子树,以穿过根节点的直线为对称轴,左边子树的左节点=右边子树的右节点,左边子树的右节点=左边子树的左节点.所以对称二叉树的定义是针对一棵树,而判断的操作是针对节点,这时可以采取由上到下的顺序,从根节点依次向下判断,只需要重复调用函数,不需要回溯.具体代码如下. class TreeNode: def __init__(self, x): self.val = x self.left = None self.…
对称二叉树 给定一个二叉树,检查它是否是镜像对称的. 例如,二叉树 [1,2,2,3,4,4,3] 是对称的.   1   / \ 2   2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:   1   / \ 2   2   \   \   3   3 思路1:使用层次遍历解决,如果每一层都是对称的 那么该二叉树为对称(正好先做的层次遍历,发现这里可以直接用同样思路做,把空节点用' '空格代替 以保证对称) # Definition…
/* * @lc app=leetcode.cn id=101 lang=c * * [101] 对称二叉树 * * https://leetcode-cn.com/problems/symmetric-tree/description/ * * algorithms * Easy (45.30%) * Total Accepted: 23.8K * Total Submissions: 52.4K * Testcase Example: '[1,2,2,3,4,4,3]' * * 给定一个二叉…
[NOIP2018PJ]对称二叉树 这个题正常人看到题面难道不是哈希? 乱写了个树哈希... #include<bits/stdc++.h> using namespace std; const int _=1e6+5,p=998244353; int re(){ int x=0,w=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();} while(ch>='0'&&…