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

做文案策划有些网站可看厦门seo代运营

做文案策划有些网站可看,厦门seo代运营,宁波营销型网站建设,网站建设中最重要的环节❓剑指 Offer 26. 树的子结构 难度:中等 输入两棵二叉树 A 和 B,判断 B 是不是 A 的子结构。(约定空树不是任意一个树的子结构) B 是 A 的子结构, 即 A 中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3/ \4 5/ \1 2给定的树 B&…

❓剑指 Offer 26. 树的子结构

难度:中等

输入两棵二叉树 AB,判断 B 是不是 A 的子结构。(约定空树不是任意一个树的子结构)

BA 的子结构, 即 A 中有出现和B相同的结构和节点值。

例如:
给定的树 A:

     3/ \4   5/ \1   2

给定的树 B

   4 /1

返回 true,因为 BA 的一个子树拥有相同的结构和节点值。

示例 1:

输入:A = [1,2,3], B = [3,1]
输出:false

示例 2:

输入:A = [3,4,5,1,2], B = [4,1]
输出:true

限制

  • 0 <= 节点个数 <= 10000

💡思路:递归

二叉树 BA 的子结构的情况一共有三种,满足其中一种即可:

  1. 子结构 B 的起点为 A 的根节点,即从 A 的根节点开始和 B 比较, 调用函数 isSubStree:
    • 不相等,则返回 false;
    • 相等,则再比较 左子树和右子树都是否相等,都相等,才返回 true
  2. 子结构 BA 的左子树中,即 B 的起点隐藏在 A 的左子树中,此时调用函数 isSubStructure
  3. 子结构 BA 的右子树中,即 B 的起点隐藏在 A 的右子树中,此时调用函数 isSubStructure

🍁代码:(C++、Java)

C++

/*** 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 {
private:bool isSubStree (TreeNode* root1, TreeNode* root2){if(root2 == nullptr) return true;if(root1 == nullptr) return false;if(root1->val != root2->val) return false;return isSubStree(root1->left, root2->left) && isSubStree(root1->right, root2->right);}
public:bool isSubStructure(TreeNode* A, TreeNode* B) {if(A == nullptr || B == nullptr) return false;return isSubStree(A, B) || isSubStructure(A->left, B) || isSubStructure(A->right, B);}
};

Java

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {private boolean isSubStree (TreeNode root1, TreeNode root2){//从当前根节点直接比较if(root2 == null) return true;if(root1 == null) return false;if(root1.val != root2.val) return false;return isSubStree(root1.left, root2.left) && isSubStree(root1.right, root2.right);}public boolean isSubStructure(TreeNode A, TreeNode B) {if(A == null || B == null) return false;return isSubStree(A, B) || isSubStructure(A.left, B) || isSubStructure(A.right, B);}
}

🚀 运行结果:

在这里插入图片描述

🕔 复杂度分析:

  • 时间复杂度 O ( n m ) O(nm) O(nm),其中 nm 分别表示两棵树的节点数,我们要对每个 A 树节点进行访问,最坏情况下每次都要比较 B 树节点的次数。
  • 空间复杂度 O ( n + m ) O(n + m) O(n+m),两个递归栈深度相乘(当树退化成链表时,递归栈最大)。

题目来源:力扣。

放弃一件事很容易,每天能坚持一件事一定很酷,一起每日一题吧!
关注我LeetCode主页 / CSDN—力扣专栏,每日更新!

注: 如有不足,欢迎指正!

http://www.dinnco.com/news/60633.html

相关文章:

  • 福州专业建站公司深圳网络营销推广招聘网
  • 做网站自己租服务器还是网络公司企业培训权威机构
  • 创建网站有什么用杭州百度seo
  • 云建网站网址西安关键词优化平台
  • 网站后台打打开空白网站收录怎么做
  • 萨wordpressseo域名综合查询
  • 做外贸需要到外汇管理网站百度站长工具排名
  • 免费域名的申请方法海阳seo排名优化培训
  • 网页排版设计软件网站seo哪家公司好
  • 南通做网站优化公司重庆网站建设公司
  • 惠济免费网站建设app开发费用一览表
  • 织梦可以做B2B信息发布网站吗优化电池充电什么意思
  • 天河做网站系统军事网站大全军事网
  • 南通做网站市场监督管理局电话
  • 网站制作软件培训人工在线客服系统
  • 个人在网站怎么做珠海百度推广优化排名
  • 新网站建设运营年计划书网络营销理论基础
  • 哈尔滨龙彩做网站多少钱怎么做百度关键词排名
  • 上传视频网站源码cms网站
  • 北京海淀住建委网站怎样交换友情链接
  • 做交流网站有哪些重庆seo多少钱
  • 哪个网站做外贸好企业邮箱格式
  • 怎么做旅游网站seo网站快速整站优化技术
  • 网站推广网站关键词排名怎么做宁波seo推广优化怎么做
  • 个人做的小网站需要备案今天时政新闻热点是什么
  • 杨浦做网站公司火锅店营销方案
  • 医院网站优化什么是竞价推广
  • 百度的官方网站网络营销与直播电商专业学什么
  • 盗版小说网站建设东莞发布最新通告
  • 移动网站开发工具怎么接广告赚钱