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

网站开发新手什么软件好开发软件的公司叫什么

网站开发新手什么软件好,开发软件的公司叫什么,国外购物平台排行榜前十名,百度推广必须做手机网站吗前言 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 判断是否是相同的树 oj链接 要判断树是否一样,要满足3个条件 根的 结构 和 值 一样左子树的结构和值一样右子树的结构和值一样 所以就可以总结以下思路…

前言

欢迎关注个人主页:逸狼


创造不易,可以点点赞吗~

如有错误,欢迎指出~



判断是否是相同的树

oj链接

要判断树是否一样,要满足3个条件

  • 结构 和 值 一样
  • 左子树的结构和值一样
  • 右子树的结构和值一样

所以就可以总结以下思路:

  1. 一个为空,一个不为空--》一定不相同
  2. 两个都为空--》                  相同
  3. 都不为空 ,但值不一样--》一定不相同
  4. 最后递归判断 左子树和右子树都要相同--》两棵树相同

其中该题的时间复杂度为O(min(m,n)),也就是取m和n中最小值(假设p的节点数为m个,q的节点数为n个)

public boolean isSameTree(TreeNode p, TreeNode q) {//一个为空,一个不为空if(p!=null&&q==null||p==null&&q!=null){return false;}//此时要么两个都为空,要么都不为空if(p==null&&q==null){return true;}//都不为空if(p.val!=q.val){return false;}//此时两个都不为空,val值也一样,说明根节点相同//判断左右树是否相同return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);

另一棵树的子树

oj链接

当两颗树相同时,也属于子树

所以步骤如下

  1. 判断是不是两颗相同的树
  2. 若不是,有可能是子树的子树
  3. 也有可能是子树的子树

其中该题的时间复杂度为m*n  (假设root有n个节点,subRoot有m个节点),原因是root的每一个节点都要和subRoot的节点比对

    public boolean isSubtree(TreeNode root, TreeNode subRoot) {//因为root要递归,递归到后面root可能为空if(root==null){return false;}//两颗树相同时,成立if(isSameTree(root,subRoot)){return true;}//判断root的左子树和subRootif(isSubtree(root.left,subRoot)){return true;}//判断root的右子树和subRootif(isSubtree(root.right,subRoot)){return true;}return false;}public boolean isSameTree(TreeNode p, TreeNode q) {//一个为空,一个不为空if(p!=null&&q==null||p==null&&q!=null){return false;}//此时要么两个都为空,要么都不为空if(p==null&&q==null){return true;}//都不为空if(p.val!=q.val){return false;}//此时两个都不为空,val值也一样,说明根节点相同//判断左右树是否相同return isSameTree(p.left,q.left)&&isSameTree(p.right,q.right);}

翻转二叉树

oj链接

让root的左节点和右节点交换,再递归遍历root.left和root.right使左子树和右子树都翻转。

代码优化:若只有一个根节点(左右子树都为空),直接返回;减少了递归和交换的次数

    public TreeNode invertTree(TreeNode root) {if(root==null){return null;}//代码优化部分******减少一些递归和交换的次数if(root.left==null&&root.right==null){return root;}//          ******TreeNode ret=root.left;root.left=root.right;root.right=ret;invertTree(root.left);invertTree(root.right);return root;}

判断一颗二叉树是否是平衡二叉树

平衡二叉树 是指该树所有节点的左右子树的深度相差不超过 1

oj链接

 判断步骤:

当前root的 左子树 和 右子树的高度差<=1

同时满足root的左 右子树平衡

 其中该题的时间复杂度为O(n^2)

    public boolean isBalanced(TreeNode root) {if(root==null) return true;int leftH=maxDepth(root.left);int rightH=maxDepth(root.right);return Math.abs(leftH-rightH)<=1&&isBalanced(root.left)&&isBalanced(root.right);}public int maxDepth(TreeNode root){if(root==null){return 0;}int leftH=maxDepth(root.left);int rightH=maxDepth(root.right);return leftH>rightH?leftH+1:rightH+1;}

 代码优化,使得时间复杂度变为O(n)

    public boolean isBalanced(TreeNode root) {if(root==null) return true;return maxDepth(root)>=1;}public int maxDepth(TreeNode root){if(root==null){return 0;}int leftH=maxDepth(root.left);if(leftH<0){return -1;}int rightH=maxDepth(root.right);if(rightH<0){return -1;}if(Math.abs(leftH-rightH)<=1){return leftH>rightH?leftH+1:rightH+1;}else{return -1;}}

第三种写法

    public boolean isBalanced(TreeNode root) {if(root==null) return true;return maxDepth(root)>=1;}public int maxDepth(TreeNode root){if(root==null){return 0;}int leftH=maxDepth(root.left);// if(leftH<0){//     return -1; // }int rightH=maxDepth(root.right);// if(rightH<0){//     return -1;// }if(leftH>=0&&rightH>=0&&Math.abs(leftH-rightH)<=1){return Math.max(leftH,rightH)+ 1;}else{return -1;}}

http://www.yayakq.cn/news/12431/

相关文章:

  • 上海景观设计公司排行长沙官网seo推广
  • 东莞网站推广哪里找书画网站源码
  • 湖北手机网站建设深圳物流网站建设
  • 湖南营销型网站建设 皆来磐石网络做网站生意越来越差
  • iis5.1怎么发布网站做淘宝差不多的网站
  • seo站点网站生成软件
  • 兰州企业网站建设哪家好wordpress 好用主题
  • 点开图片跳到网站怎么做品牌策划与推广
  • 网站图片上传功能怎么做的上海网站建设y021
  • 网页制作工具的选择与网站整体风格是有关系吗wordpress删除修订版本
  • 做的好的营销型网站有哪些内容医院网站 整站源码
  • 汝南网站建设长沙网站制作有哪些公司
  • 做外贸企业网站要注意哪些淘宝官网首页网站
  • wordpress短信回复从建站到网络优化
  • 网站过程中遇到问题WordPress 将您重定向的次数过多
  • 企业网站建设开发多少钱wordpress joomla 菜单
  • 济南网站制作报价龙泉驿网站建设
  • 如何做外贸soho做网站o2o网站建设计划书
  • 网站大致内容用云做网站
  • 建立学校网站中文编程做网站
  • 唐山网站制作服务公司中国职业技能培训中心官网
  • 电商网站充值消费系统郑州做网络优化的公司
  • 好的手机端网站模板下载网站做违法的事情投诉
  • 北京网络公司的网站重庆企业网站建设联系电话
  • 骏域网站建设建设户外腰包网站
  • 莆田专业网站建设公司关闭wordpress多站点
  • 网站改版百度提交网络推广赚钱平台有哪些
  • 网站建设从建立服务器开始南宁百度网站公司吗
  • 农场会员营销网站建设制作短视频的app哪个好
  • 百度右侧相关网站电商网站建设实训总结与体会