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

房地产开发网站建设开源手机网站建站系统

房地产开发网站建设,开源手机网站建站系统,中英文网站开发费用,sem竞价托管价格问题#xff1a; ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点 首先#xff0c;二叉搜索树是一种常见的数据结构#xff0c;它具有以下特点#xff1a; 每个节点最多有两个子节点#xff0c;分别为左子节点和右子节…问题 ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点 首先二叉搜索树是一种常见的数据结构它具有以下特点 每个节点最多有两个子节点分别为左子节点和右子节点左子节点的值小于父节点的值右子节点的值大于父节点的值没有重复的节点值。 在刷题过程中我遇到了以下三道题目 二叉搜索树的最近公共祖先该题目要求在一个二叉搜索树中找到两个节点的最近公共祖先。我的解题思路是从根节点开始遍历二叉搜索树如果两个节点的值都小于当前节点的值说明它们都在当前节点的左子树中如果两个节点的值都大于当前节点的值说明它们都在当前节点的右子树中如果一个节点的值小于当前节点的值另一个节点的值大于当前节点的值说明它们的最近公共祖先就是当前节点。具体实现可以使用递归或者迭代方式时间复杂度为O(logn)。 二叉搜索树中的插入操作该题目要求在一个二叉搜索树中插入一个节点。我的解题思路是从根节点开始遍历二叉搜索树如果插入节点的值小于当前节点的值就去遍历左子树如果插入节点的值大于当前节点的值就去遍历右子树。一直遍历到某个节点的左子节点或右子节点为空时就把插入节点作为该节点的左子节点或右子节点。具体实现可以使用递归或者迭代方式时间复杂度为O(logn)。 删除二叉搜索树中的节点该题目要求在一个二叉搜索树中删除一个节点。我的解题思路是首先找到要删除的节点如果该节点有两个子节点就找到它的后继节点即右子树中最小的节点把后继节点的值复制到要删除的节点中然后把要删除的节点变成后继节点如果该节点只有一个子节点或没有子节点就直接把该节点删除并把它的子节点接到它的父节点上。具体实现可以使用递归或者迭代方式时间复杂度为O(logn)。 总结一下二叉搜索树是一种非常重要的数据结构在刷题过程中我对它的特点和操作有了更深入的理解。对于二叉搜索树的操作递归和迭代实现都可以具体选择哪种方式要根据具体情况而定。在Java中可以使用TreeNode类来表示二叉树节点具体实现可以参考以下代码 class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val x; } }class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if (root null || root p || root q) {return root;}if (root.val p.val root.val q.val) {return lowestCommonAncestor(root.left, p, q);} else if (root.val p.val root.val q.val) {return lowestCommonAncestor(root.right, p, q);} else {return root;}}public TreeNode insertIntoBST(TreeNode root, int val) {if (root null) {return new TreeNode(val);}if (val root.val) {root.left insertIntoBST(root.left, val);} else {root.right insertIntoBST(root.right, val);}return root;}public TreeNode deleteNode(TreeNode root, int key) {if (root null) {return null;}if (key root.val) {root.left deleteNode(root.left, key);} else if (key root.val) {root.right deleteNode(root.right, key);} else {if (root.left null) {return root.right;} else if (root.right null) {return root.left;} else {TreeNode minNode getMin(root.right);root.val minNode.val;root.right deleteNode(root.right, minNode.val);}}return root;}public TreeNode getMin(TreeNode node) {while (node.left ! null) {node node.left;}return node;} }
http://www.dnsts.com.cn/news/68014.html

相关文章:

  • 网站开发需要多少钱销售靖江网站制作多少钱
  • 建网站的流程费用智慧旅游类网站开发商
  • 正常做网站多少钱做视频网站需要
  • 郑州人才网站如何使用电子商务网站
  • 网站制作公司兴田德润怎么联系百度登录账号首页
  • 网站开发语言介绍网站 编码文档
  • 网站建设费财务列账定制开发小程序价格
  • asp.net网站的验证码怎么使用广州建网站技术
  • 十大创意网站关键词推广优化外包
  • 北京网站优化前景网站营销方式
  • 公司名称大全三个字深圳快速seo
  • 货运 东莞网站建设网站建设doc
  • 怎么修改网站备案信息河南工程新希望官网
  • 怎么做好网站网站建设公司的工资
  • 手机网站开发开发做网站建设注册商标是多少类
  • 网站做签到功能wordpress设置行间距
  • 怎样在百度做网站表白网站500兆空间多少钱
  • 学校网站建设的流程东莞网站seo推广优化
  • 建设银行信用卡在网站激活后如何设置密码曲阜文化建设示范区网站
  • 个人内网网站建设深圳电力建设公司
  • 公司软件网站建设美橙互联 网站备案拍照
  • 定西建设厅网站个人服务器 网站建设
  • 初识网站开发流程图微信开放平台和微信公众号的区别
  • 服务器怎么用数据库建设网站网站开发需要经过的几个主要阶段
  • 南阳网站开发公司seowhy
  • 猪八戒做网站排名网站建设怎么创业
  • 美工怎么做网站效果图平面设计网站有哪些
  • 做养生网站怎么样手机上如何创建微信公众号
  • 个人建网站大概多少钱北京市建设工程信息网交易网站
  • 建设网站哪家比较好旺道seo