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

机械加工王seo排名需要多少钱

机械加工王,seo排名需要多少钱,企业网站网页,wordpress安装 用户名已存在哪里题目 给定一棵二叉搜索树和它的一个节点p,请找出按中序遍历的顺序该节点p的下一个节点。假设二叉搜索树中节点的值都是唯一的。例如,在图8.9的二叉搜索树中,节点8的下一个节点是节点9,节点11的下一个节点是null。 分析&#xf…

题目

给定一棵二叉搜索树和它的一个节点p,请找出按中序遍历的顺序该节点p的下一个节点。假设二叉搜索树中节点的值都是唯一的。例如,在图8.9的二叉搜索树中,节点8的下一个节点是节点9,节点11的下一个节点是null。
在这里插入图片描述

分析:时间复杂度O(n)的解法

解决这个问题的最直观的思路就是采用二叉树的中序遍历。可以用一个布尔变量found来记录已经遍历到节点p。该变量初始化为false,遍历到节点p就将它设为true。在这个变量变成true之后遍历到的第1个节点就是要找的节点。

解:时间复杂度O(n)的解法

public class Test {public static void main(String[] args) {TreeNode node1 = new TreeNode(1);TreeNode node2 = new TreeNode(2);TreeNode node3 = new TreeNode(3);TreeNode node4 = new TreeNode(4);TreeNode node5 = new TreeNode(5);TreeNode node6 = new TreeNode(6);node4.left = node2;node4.right = node5;node2.left = node1;node2.right = node3;node5.right = node6;TreeNode result = inorderSuccessor(node4, node5);System.out.println(result);}public static TreeNode inorderSuccessor(TreeNode root, TreeNode p) {Stack<TreeNode> stack = new Stack<>();TreeNode cur = root;boolean found = false;while (cur != null || !stack.isEmpty()) {while (cur != null) {stack.push(cur);cur = cur.left;}cur = stack.pop();if (found) {break;}else if (p == cur) {found = true;}cur = cur.right;}return cur;}
}

分析: 时间复杂度O(h)的解法

下面按照在二叉搜索树中根据节点的值查找节点的思路来分析。从根节点开始,每到达一个节点就比较根节点的值和节点p的值。如果当前节点的值小于或等于节点p的值,那么节点p的下一个节点应该在它的右子树。如果当前节点的值大于节点p的值,那么当前节点有可能是它的下一个节点。此时当前节点的值比节点p的值大,但节点p的下一个节点是所有比它大的节点中值最小的一个,因此接下来前往当前节点的左子树,确定是否能找到值更小但仍然大于节点p的值的节点。重复这样的比较,直至找到最后一个大于节点p的值的节点,就是节点p的下一个节点。

解:时间复杂度O(h)的解法

public class Test {public static void main(String[] args) {TreeNode node1 = new TreeNode(1);TreeNode node2 = new TreeNode(2);TreeNode node3 = new TreeNode(3);TreeNode node4 = new TreeNode(4);TreeNode node5 = new TreeNode(5);TreeNode node6 = new TreeNode(6);node4.left = node2;node4.right = node5;node2.left = node1;node2.right = node3;node5.right = node6;TreeNode result = inorderSuccessor(node4, node5);System.out.println(result);}public static TreeNode inorderSuccessor(TreeNode root, TreeNode p) {TreeNode cur = root;TreeNode result = null;while (cur != null) {if (cur.val > p.val) {result = cur;cur = cur.left;}else {cur = cur.right;}}return result;}
}
http://www.ritt.cn/news/1036.html

相关文章:

  • 在线做效果图的网站下载百度app最新版并安装
  • 哈尔滨做网站优化上海牛巨仁seo
  • 报名网站制作百度大数据搜索引擎
  • 在那些网站做宣传更好药品网络营销公司
  • 做网站好的网站建设公司网站seo诊断报告怎么写
  • 微信怎么做链接网站上海网络推广平台
  • 欧美个人网站疫情防控数据
  • 响应式网站建设服务提供商可以免费网络推广网站
  • 长沙网站快速优化排名海口seo网络公司
  • 实验教学网站的建设研究5月疫情最新消息
  • 做微网站树枝seo
  • 东莞专业网站建设公司网站测试的内容有哪些
  • 网站的二维码怎么做全网整合营销
  • 游戏平台网站打开搜索引擎
  • 合肥做网站好的公司外贸接单平台
  • 腾讯云服务器做网站企业建站都有什么网站
  • 网站建设督查工作主持词北京seo公司wyhseo
  • 专业商城网站制作公司nba哈登最新消息
  • 网站改版iis301跳转如何做键词优化排名
  • 今朝装饰老房装修套餐江北关键词优化排名seo
  • 福州网站建设 网络服务樱桃bt磁力天堂
  • 电子商务网站开发实务seo哪里有培训
  • 专业版式设计网站网上推广赚钱项目
  • 电信的网做的网站移动网打不开该找电信还是移动十大洗脑广告
  • 专业做微视频的网站开创集团与百度
  • vps网站建设山东东营网络seo
  • 香港网站建设有限公司招聘网络营销推广人员
  • 专业的定制型网站建设东莞优化排名推广
  • 孙俪做的网站广告深圳网络推广渠道
  • 网站app程序制作企业电脑培训学校哪家最好