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

潍坊网站建设盛鸿科技电脑上做免费网站教程

潍坊网站建设盛鸿科技,电脑上做免费网站教程,太原做网页软件,wordpress 翻译更新目录 一、力扣235.二叉搜索树的最近公共祖先1.1 题目1.2 思路1.3 代码 二、力扣701.二叉搜索树中的插入操作2.1 题目2.2 思路2.3 代码 三、力扣450.删除二叉搜索树中的节点3.1 题目3.2 思路3.3 代码3.4 总结 一、力扣235.二叉搜索树的最近公共祖先 1.1 题目 1.2 思路 利用二叉…

目录

  • 一、力扣235.二叉搜索树的最近公共祖先
    • 1.1 题目
    • 1.2 思路
    • 1.3 代码
  • 二、力扣701.二叉搜索树中的插入操作
    • 2.1 题目
    • 2.2 思路
    • 2.3 代码
  • 三、力扣450.删除二叉搜索树中的节点
    • 3.1 题目
    • 3.2 思路
    • 3.3 代码
    • 3.4 总结

一、力扣235.二叉搜索树的最近公共祖先

1.1 题目

在这里插入图片描述

1.2 思路

利用二叉搜索树的有序特性来实现:
如果cur大于pq:向左搜索;
如果cur小于pq:向右搜索;
如果介于两者之间:则找到!

1.3 代码

递归法:

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {//递归法if(root == null){return null;}return traversal(root,p,q);}public TreeNode traversal(TreeNode root,TreeNode p,TreeNode q){//和上题类似,第二种情况也包含在了处理逻辑里if(root.val < p.val && root.val < q.val){return traversal(root.right,p,q);}if(root.val > p.val && root.val > q.val){return traversal(root.left,p,q);}//当前节点介于[p,q]  闭区间return root;}
}

迭代法:

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {//迭代if(root == null){return null;}TreeNode cur = root;while(true){if(cur.val > p.val && cur.val > q.val){cur = cur.left;continue;}if(cur.val < p.val && cur.val < q.val){cur = cur.right;continue;}return cur;}}
}

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

2.1 题目

在这里插入图片描述

2.2 思路

根据二叉搜索树的特性,比大小向下遍历,直到找到null,将其new一个新的结点插入进去。

2.3 代码

自己的思路:

class Solution {public TreeNode newnode;public TreeNode insertIntoBST(TreeNode root, int val) {//比大小来遍历寻找该插入的位置if(root == null){return new TreeNode(val);}traversal(root,val);return root;}public void traversal(TreeNode root,int val){if(val > root.val){if(root.right == null){newnode = new TreeNode(val);root.right = newnode;return;}traversal(root.right,val);}if(val < root.val){if(root.left == null){newnode = new TreeNode(val);root.left = newnode;return;}traversal(root.left,val);}}
}

三、力扣450.删除二叉搜索树中的节点

3.1 题目

在这里插入图片描述

3.2 思路

梳理本题的五种情况:
(1)没有找到该节点
(2)找到了该节点,该节点的左右孩子均为空
(3)找到了该节点,该节点的左孩子为空,右孩子不为空
(4)找到了该节点,该节点的左孩子不为空,右孩子为空
(5)找到了该节点,该节点的左右孩子均不为空(最关机键的点):见下图

3.3 代码

class Solution {public TreeNode deleteNode(TreeNode root, int key) {//确定递归的终止条件//没有找到该节点if(root == null){return null;}//找到了该节点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{//假设root的右子树上位,那么需要将root的左子树插入root的右子树中,再返回右子树TreeNode cur = root.right;while(cur.left != null){cur = cur.left;}cur.left = root.left;return root.right;}}//单层递归逻辑if(key > root.val){root.right = deleteNode(root.right,key);}if(key < root.val){root.left = deleteNode(root.left,key);}return root;}
}

3.4 总结

(1)五种情况的分析;(递归终止条件)
(2)不用双指针pre,而是将处理后的结点回溯返回给上层节点接住。(单层递归逻辑)

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

相关文章:

  • 杭州 企业 建网站互联网推广营销方案
  • 建设网站建设哪里好网站开发企业开发
  • 重庆招聘一般上什么网站服务范围 网站建设公司
  • 用自己的电脑做视频网站移动端网站建设公司
  • 怎么根据已有网站做新网站212200扬中论坛
  • 高校招生网站建设淘宝网站怎么做特价
  • 制作一个网站要花多少钱最有效的网站推广费用
  • 郑州网站建设乛汉狮网络网站备案归属地
  • 手机net网站开发全国监理工程师查询网
  • 网站建设摊销wordpress 网址导航插件
  • 水产食品企业网站模板做淘宝客网站需要多大的数据库
  • 旅游加盟网站建设温州外贸网站
  • 怎么样更好的做网站亳州市建设局网站
  • 分类网站发布信息有生意做吗wordpress延时插件
  • 请教个人主页网站怎么做啊品牌营销策划ppt
  • 长沙网站排名报价wordpress仿站之家
  • 怎么在百度做网站推广抖音seo
  • 网站开发和软件个人做跨境电商网站
  • 网站建设最花时间的是有关网站建设的毕业设计
  • 深圳比较好的建网站公司wordpress链接地址设置
  • 同ip网站做友链在线教育培训系统
  • 网站开发与网页后台开发高端网站设计一般多少钱
  • 用r做简易的网站青岛网站建设康之迅
  • 网站开发 税率建设网站比较好的公司排名
  • 书本翻页 网站模板wordpress手机qq登录地址
  • 微信第三方网站开发教程网站设计步骤图片
  • 网站搭建制作wordpress 添加广告插件
  • 适合seo优化的网站制作重庆广告公司十大排名
  • 中小学网站建设方案域名邮箱登录入口
  • wordpress自动视频播放seo推广优化找stso88效果好