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

设计学习网站针对大学生推广引流

设计学习网站,针对大学生推广引流,新电商平台,深圳网络推广软件力扣labuladong一刷day35天 文章目录 力扣labuladong一刷day35天一、98. 验证二叉搜索树二、700. 二叉搜索树中的搜索三、701. 二叉搜索树中的插入操作四、450. 删除二叉搜索树中的节点 一、98. 验证二叉搜索树 题目链接:https://leetcode.cn/problems/validate-bi…

力扣labuladong一刷day35天

文章目录

      • 力扣labuladong一刷day35天
      • 一、98. 验证二叉搜索树
      • 二、700. 二叉搜索树中的搜索
      • 三、701. 二叉搜索树中的插入操作
      • 四、450. 删除二叉搜索树中的节点

一、98. 验证二叉搜索树

题目链接:https://leetcode.cn/problems/validate-binary-search-tree/
思路:校验二叉搜索树的合法性,简单的想法直接遍历判断左右孩子与父节点值的关系即可,但是有时候会出现问题,如何 10 -> { 5, 15-> {6, 20} }。看似都满足,其实不是的,6归属于10的右子树,但是却比10小,这也就是说每一个root只管的了他的左右孩子,但没法把约束root的信息传递给左右孩子,所以我们在遍历的时候就要携带上root的约束范围向下传递。也就是说从上往下遍历的过程中记录好每一个节点的约束范围。

class Solution {public boolean isValidBST(TreeNode root) {return isValidBST(root, null, null);}boolean isValidBST(TreeNode root, TreeNode min, TreeNode max) {if (root == null) return true;if (min != null && root.val <= min.val) return false;if (max != null && root.val >= max.val) return false;return isValidBST(root.left, min, root) && isValidBST(root.right, root, max);}
}

二、700. 二叉搜索树中的搜索

题目链接:https://leetcode.cn/problems/search-in-a-binary-search-tree/
思路:在二叉搜索树中搜索值,只需要利用二叉搜索树的特性,val<root.val 去左子树进行搜索,val>root.val去右子树搜索 val == root.val 返回。

class Solution {public TreeNode searchBST(TreeNode root, int val) {if (root == null) return null;if (val < root.val) return searchBST(root.left, val);if (val > root.val) return searchBST(root.right, val);return root;}
}

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

题目链接:https://leetcode.cn/problems/insert-into-a-binary-search-tree/
思路:对于二叉搜索树的插入和查询思路是类似的,左右判断一路向下搜索,为node == null就找到了位置new 新节点返回就是。

class Solution {public TreeNode insertIntoBST(TreeNode root, int val) {if (root == null) return new TreeNode(val);if (val < root.val) {root.left = insertIntoBST(root.left, val);}if (val > root.val) {root.right = insertIntoBST(root.right, val);}return root;}
}

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

题目链接:https://leetcode.cn/problems/delete-node-in-a-bst/
思路:其实对于二叉搜索树的查找、新增、修改都是一样的思路,对于删除却不一样,有3中可能性,①、要删除节点为叶子节点。②、要删除节点只有一个孩子节点。③、要删除节点有两个孩子节点。
①、直接返回null
②、返回另一个非空的孩子节点。
③、有两种删除方法,可以拿当前节点的左子树中最大值(即一路p=p.right)进行交换,然后递归删除,也可以拿当前节点的右子树中的最小值(即一路p=p.left)进行交换,然后递归删除。

class Solution {public TreeNode deleteNode(TreeNode root, int key) {if (root == null) return null;if (key == root.val) {if (root.left == null && root.right == null) return null;if (root.left == null && root.right != null) return root.right;if (root.left != null && root.right == null) return root.left;TreeNode p = root.right;while (p.left != null) {p = p.left;}root.val = p.val;root.right = deleteNode(root.right, root.val);} else if (key < root.val) {root.left = deleteNode(root.left, key);}else {root.right = deleteNode(root.right, key);}return root;}
}
http://www.zhongyajixie.com/news/30257.html

相关文章:

  • 竭诚网络网站建设营业推广
  • 电子商务网站建设与管理答案百度题库
  • 济宁建设局官方网站优化网站推广排名
  • 怎么设计海报图片重庆自动seo
  • 90设计网站几次是什么意思苏州疫情最新情况
  • 建设项目环保竣工信息公开网站百度推广外包哪家不错
  • 网站开发与制作毕业论文app广告投放价格表
  • 网站建设做什么好西安seo搜推宝
  • 网站的建设费 账务处理百度知道首页登录
  • 做任务网站东莞seo
  • 谈谈网站建设会有哪些问题苏州seo怎么做
  • 丽水网站建设费用百度seo sem
  • 怎么免费做网站不要域名百度安装
  • 清远建设网站制作黄页网络的推广网站有哪些类型
  • 珠海企业集团网站建设公司推广宣传文案
  • 那个网站做视频没有水印网络推广费用一般多少
  • 做网站看什么书网络做推广公司
  • 网站管理难做吗百度怎么发自己的小广告
  • 做网站简单需要什么软件品牌广告语
  • 旅游网站系统功能百度平台联系方式
  • 网页翻译成中文后怎么还原武汉seo楚天
  • 个人做网站有什么条件中国seo第一人
  • 方太产品站网站建设做一个网站需要多少钱
  • 让一个网站掉排名长沙网站建设服务
  • 做家装施工的网站深圳市昊客网络科技有限公司
  • 网站建设思维导图恢复正常百度
  • 蘑菇街网站服务手机网站seo免费软件
  • 中旅远洋商务网站建设策划书百度知道在线问答
  • 首京建设投资引导基金网站开发一款app软件需要多少钱
  • 在线电子商务网站开发宁波网站推广联系方式