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

会议网站定制大朗仿做网站

会议网站定制,大朗仿做网站,上海网站公司哪家好,大型门户网站系统目录 一、力扣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/211676/

相关文章:

  • 外贸公司网站素材哪些企业需要做网站
  • 建网站买完域名后怎么做平面设计网课
  • 想用wordpress建立网站中国徐州网
  • 微网站 建设方案上海频道网站建设
  • 廊坊做网站上海公司电话深圳集团网站建设公司好
  • 上海网站建设公司站霸网络信誉好的集团网站建设
  • 品牌网站设计步骤百度一下你就知道百度首页
  • 推荐几个用vue做的网站公司企业文化墙设计方案
  • 黄石网站建设维护注册外贸公司需要多少钱
  • 个人网站经营性备案查询门户网站的推广
  • 韩国美食做视频网站有哪些微信公众号分享wordpress
  • 建立门户网站的意义网站跟app的区别是什么意思
  • 泉州网站优化排名推广百度做网站的
  • 智能建站cms管理系统成品软件源码网站大全
  • 网站开发区网站建设及托管合同
  • 大门户网站南安seo优化推广
  • 网站建设创新互联商机互联网站建设
  • 网站销售需要注册公司吗做网站推销手表
  • 一般网站的后台做网站的时候遇到的问题
  • 网络推广方案联系昔年下拉十堰seo招聘
  • 会员网站开发极简风格 wordpress
  • 大连门户网站开发网站开发技术与应用课程设计
  • 大连网站建设方案案例太原it培训机构
  • 果汁网站模板开发邦接单
  • 佛山外贸网站建设价位人事处网站建设绩效目标概述
  • 沙河市建设局网站又好又快自助建站
  • 合山网站建设seo百度网站排名研究中心关键词首页优化
  • 目前好的推销网站文件怎么做网页
  • 手机网站整站源码下载肇庆建网站服务
  • 做巧克力的网站良精企业网站管理系统源码 后台不能编辑产品