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

做网店装修的网站有哪些公司注册名字查询

做网店装修的网站有哪些,公司注册名字查询,360免费建站怎么做,公众号里的网站怎么做的235. 二叉搜索树的最近公共祖先 相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性无需全部遍历。特点:当前节点在p,q节点之前则必为最近公共祖先 class Solution {public TreeNode lowestCommonAncestor(TreeNo…
235. 二叉搜索树的最近公共祖先 

        相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的特性无需全部遍历。特点:当前节点在p,q节点之前则必为最近公共祖先

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root == null){return root;}//当前节点大于p,q节点值往当前节点左子树遍历if(root.val > p.val && root.val > q.val){TreeNode left = lowestCommonAncestor(root.left,p,q);if(left != null){return left;}}//当前节点小于p,q节点值往当前节点右子树遍历if(root.val < q.val && root.val < p.val){TreeNode right = lowestCommonAncestor(root.right,p,q);if(right != null){return right;}}//如果当前节点值在两个节点值中间这就是最近公共祖先if(root.val > p.val && root.val < q.val){return root;}return root;}
}

迭代法:

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {while(root != null){//p,q节点都在左if(root.val > p.val && root.val > q.val){root = root.left;//p,q节点都在右}else if(root.val < q.val && root.val < p.val){root = root.right;//当前节点在p,q中间}else{return root;}}return root;}
}

 701.二叉搜索树中的插入操作  

思路:只需要在叶子节点上可以找到我们要插入的新节点位置,向上放回新节点给上一个节点进行操作

通过递归函数返回值完成了新加入节点的父子关系赋值操作了,下一层将加入节点返回,本层用root->left或者root->right将其接住

class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {//递归终止条件 递归到叶子节点 创建新节点返回给上一个节点if(root == null){return new TreeNode(val);}//当前节点值大于val 将新节点插入当前节点的左侧if(root.val > val){root.left = insertIntoBST(root.left,val);}if(root.val < val){root.right = insertIntoBST(root.right,val);}return root;}
}

 450.删除二叉搜索树中的节点  

        五种情况

        1.没找到删除节点,遍历到空节点直接返回

        2.遍历到删除节点,删除节点左右子树为空,向上返回null

        3.遍历到删除节点,删除节点左子树为空右子树不为空 返回右子树节点

        4.遍历到删除节点,删除节点左子树不为空右子树为空  返回左子树节点

        5.遍历到删除节点,删除节点左右子树都不为空 将删除节点左子树头节点放到删除节点右子树下最左面节点的左孩子上,返回删除节点右孩子为新的根节点

class Solution {public TreeNode deleteNode(TreeNode root, int key) {//终止条件找到删除节点 执行删除节点逻辑 将删除完的操作节点返回给上一个节点//没有找到删除节点if(root == null){return root;}if(root.val == key){if(root.left == null && root.right == null){return null;}else if(root.left != null && root.right == null){return root.left;}else if(root.left == null && root.right != null){return root.right;}else{//先找到删除节点右子树最左侧的值TreeNode cur = root.right;while(cur.left != null){cur = cur.left;}//再将删除节点的左子树连接到curcur.left = root.left;//此处逻辑为 左为空 右不为空逻辑 直接返回右孩子return root.right;  //直接将父节点指向删除节点的右孩子 删除节点}}//单层递归逻辑if(root.val > key){root.left = deleteNode(root.left,key);}if(root.val < key){root.right = deleteNode(root.right,key);}return root;}
}

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

相关文章:

  • 适应移动端网站模板百度网站排名搜行者seo
  • 惠州做学校网站怎样建网站
  • 如何做外贸品牌网站怎么申请免费网站
  • 网站备案号的链接正在进入一站式服务平台
  • 河南省建设厅网网站网站seo优化外包顾问
  • 软件园二期做网站的公司有哪些网站建设费怎么写分录
  • 12306网站是哪家公司做开发的宁波信誉好品牌网站设计地址
  • 大气简约企业网站模板免费下载百度公司在哪里
  • 手机壁纸网站源码亚翔建设集团有限公司网站
  • 2017响应式网站 全站品牌网上做推广
  • 网站建设部分费用会计科目外包加工网app
  • 网站推广的工具ios应用开发
  • 华佣网做最好的现货沥青返佣网站用jsp做的可运行的网站
  • 品牌网站设计提案可以自己企业网站制作
  • 郑州彩票网站建设c 做网站后端
  • 学网站开发顺序咸阳做网站开发公司哪家好
  • 北京建设主管部门网站最基本最重要的网站推广工具是
  • 大型网站建设推荐电子商务网站建设的意义
  • 北京团建网站网站开发设计公司简介
  • 青岛 建网站福建建设人才网
  • 珠海做网站的公司介绍一页式网站模板
  • 网站开发表格整体页面居中php编程
  • 云南建设网官方网站优化学校网站建设方案
  • 现在做网络推广网站建设怎么样建工网招聘
  • 无锡网站建设技术外包wordpress文章分类列表
  • 简历在线制作网站免费太原网站上排名
  • 淄博网站制作服务优化网站怎么做跳出提示筐
  • dede 分类信息网站 模板中国现任领导名单简介
  • 北京怎么建立网站中国icp备案的有多少企业网站
  • 安徽网站优化建设建网站销售常见问题