当前位置: 首页 > wzjs >正文

深圳网站设计公司费用多少租房网站开发

深圳网站设计公司费用多少,租房网站开发,标智客在线logo设计生成器免费,企业网站建设与网页设计二叉树 前言一.简介二.题目123 前言 我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新,其他的也会陆陆续续的更新,希望大家点…

二叉树

  • 前言
  • 一.简介
  • 二.题目
    • 1
    • 2
    • 3

前言

我会将一些常用的算法以及对应的题单给写完,形成一套完整的算法体系,以及大量的各个难度的题目,目前算法也写了几篇,题单正在更新,其他的也会陆陆续续的更新,希望大家点赞收藏我会尽快更新的!!!

一.简介

二叉树的题目大多基于递归

f(root){//对以root为根的二叉树做一些操作或判断
//递归体
if(root??){}f(root->left);f(root->right);
}

注意:可能为空树

二.题目

1

力扣LCR 145. 判断对称二叉树
在这里插入图片描述

1.一棵树何时镜像对称?
—左子树与右子树镜像对称,那么这个树是对称的。

2.如何判断左右子树镜像对称?(下面 的 == 是镜像对称的意思)
—左右子树的根节点相同
—左子树的左子树 == 右子树的右子树
—左子树的右子树==右子树的左子树

3.用两个指针p q对称的递归遍历树,进行比较即可。
初始化:p=root->l q=root->r
递归出口:p q都为空,return 1
p q有一个为空 return 0
递归条件:p==q
p->l ==q->r
p->r ==q->l
4.特殊情况:空树 也满足条件

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:
bool check(TreeNode* p,TreeNode* q){if(p == NULL && q == NULL){//两个子树为零则相同return 1;}if(p == NULL || q == NULL){//若只有一个子树为空则不相同return 0;}return p->val == q->val && check(p->left,q->right) && check(p->right,q->left);//若当前和左右子树相同返回true
}bool checkSymmetricTree(TreeNode* root) {if(root == NULL){return 1;}return check(root->left,root->right);}
};

2

力扣236. 二叉树的最近公共祖先
在这里插入图片描述
分析:根据p,q的分布情况判断答案
根节点root。
1.如果p,q分别出现在root的左右子树中,则root是答案
2.若p ,q同时出现在root的某一个子树x中,则问题转化为在x树中找公共祖先(递归)

得到解题思路:递归,去找p,q的出现位置,并判断答案。
递归函数f(root,p,q) :在以root为根的树中找p,q。
1.roo == NULL,空树,返回NULL
2.roo == p或者root==q,找到了一个,直接返回root。若另一个在root的子树中,root是答案。若不在,则返回找到的这个结点。
3.root不为空,也不是p,q,,说明p,q在root的左右子树中,则递归调用,分别去左右子树中找。
l=f(root->left,p,q) r=f(root->right,p,q)
(1)若l,r全为空,返回空
(2)若l,r有一个为空,返回另一个。说明在另一个子树中找到了p,q或者答案
(3)若l,r都不为空,说明p,q一边一个,则root是答案,返回root

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/
class Solution {
public:TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {if(root == NULL){//如果根为空return NULL;}if(p == root || q == root){//如果有一个节点为根return root;}TreeNode* l = lowestCommonAncestor(root->left,p,q);//查找左子树TreeNode* r = lowestCommonAncestor(root->right,p,q);//查找右子树if(l == NULL && r == NULL){//如果未找到return NULL;}if(l != NULL && r != NULL){//左右树都有return root;}if(l == NULL){//不在左子树return r;}if(r == NULL){//不在右子树return l;}return NULL;}
};

3

力扣226. 翻转二叉树
在这里插入图片描述
如果根节点的左右子树分别完成翻转之后,
只需要交换左右子树即可。

问题转化为分别去翻转左右子树。----递归

递归出口:当前节点为 NULL时返 回

流程:先分别递归翻转左右子树,
返回上来之后 交换左右子树

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
public:TreeNode* invertTree(TreeNode* root) {if(root == NULL){//结束条件return NULL;}TreeNode* l = invertTree(root->left);//翻转左树TreeNode* r = invertTree(root->right);//翻转右数//翻转根root->right = l;root->left = r;return root;}
};

文章转载自:

http://MN31z0f3.tmjhy.cn
http://UUfqgcMq.tmjhy.cn
http://50wU0iwk.tmjhy.cn
http://ZMTbmlst.tmjhy.cn
http://pt3H3icw.tmjhy.cn
http://7yEdyCNT.tmjhy.cn
http://VXryyFH0.tmjhy.cn
http://C0rN6uNn.tmjhy.cn
http://WwlqHUU2.tmjhy.cn
http://YIksaVdk.tmjhy.cn
http://UdUlJ8Ds.tmjhy.cn
http://pmbGNdAA.tmjhy.cn
http://mx6oMTNa.tmjhy.cn
http://jUic0fr0.tmjhy.cn
http://AGGO90wV.tmjhy.cn
http://cSdrhUiH.tmjhy.cn
http://MwltpUOt.tmjhy.cn
http://JuqIi82p.tmjhy.cn
http://C8Idwb2H.tmjhy.cn
http://fFsQY0fO.tmjhy.cn
http://2rxeNGSr.tmjhy.cn
http://VXYjLD7L.tmjhy.cn
http://pick6IgZ.tmjhy.cn
http://hXUy5eay.tmjhy.cn
http://oTJPEw2M.tmjhy.cn
http://dLT21FyK.tmjhy.cn
http://jtKchLTu.tmjhy.cn
http://LOzVHjxi.tmjhy.cn
http://Gbl576PR.tmjhy.cn
http://fOJ3XgN9.tmjhy.cn
http://www.dtcms.com/wzjs/741904.html

相关文章:

  • 万网网站备案管理WordPress抓取文章
  • wordpress 多站点 子目录用PS做网站搜索框
  • 网站建设流行技术上海建设网站价格
  • 建站哪个平台好用wordpress外网固定链接
  • 网站建设 重点响应式设计网站案例
  • 外贸网站建设设计开发公司分公司如何办预售证
  • 个人网站可以做论坛网站正在建设中 html 模板
  • 网站建设部署与发布答案黑马培训是正规学校吗
  • 扶沟县网站开发做网站用php还是node
  • 朔州路桥建设有限责任公司网站wordpress网站不稳定
  • 河源市建设规划局网站网站收录突然全部没有了
  • 营销型网站建设 网络服务网站开发怎么学习
  • php网站开发实例网络舆情的网站
  • 济南专业网站制作公司音乐制作软件哪个好
  • 除了外链 还有什么办法使网站提高排名企业微信怎么下载
  • 住房建设部官方网站公示公告网站图片下载 代码
  • 商城网站源码下载湖州网站设计
  • 微信微网站是什么案例工业机器人技术
  • 健康养生网站源码广州市建设工程检测协会网站
  • 北京美陈设计制作公司新企业网站应该怎么做SEO优化
  • 看男女做那个视频网站建设网站要不要工商执照
  • 网站建设征集意见广告设计与制作用什么软件
  • 网站域名到期时间查询wordpress建哪些网站吗
  • 房产网站怎么推广域名托管
  • 网站的注册页面怎么做哈尔滨发布信息的网站
  • 网站建设相关技术企业网络平台建设
  • 福建设备公司网站简繁英3合1企业网站生成管理系统
  • 建设部标准定额网站seo教程之关键词是什么
  • 太原网站开发哪家好net实用网站开发
  • 网站的建设运营收费是哪些湘潭高端网站建设