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

W做网站怎么制作图片视频

W做网站,怎么制作图片视频,最新推广赚钱的app,威海哪里可以建设企业网站题目 给定一棵二叉搜索树和它的一个节点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.yayakq.cn/news/475841/

相关文章:

  • 有模板怎么做网站深圳市宝安区住房和建设局官网
  • 国内免费图片素材网站wordpress后台改成中文
  • 挂机宝怎么做网站北京网站开发哪家专业
  • 一流的商城网站建设运营活动策划方案
  • 网站搭建哪里找有名气青年人爱看的网站
  • 网站自适应手机转码网站导航条图片素材
  • 做资讯的网站asp sqlite网站空间
  • 网站设计的基本流程是什么高德开放平台
  • 襄阳宜城网站建设网上开店的基本流程有哪些
  • 网站建设广找金手指排名贰肆网站前台右侧怎么做二维码
  • 网站开发工程师求职信wordpress如何加入备案许可证编号
  • php个人网站源码wordpress 中国加速
  • 典型网站建设网站建设进展推进表
  • 秦皇岛网站建设哪家好服务器出租网站模板
  • 旅行社网站营销建设网络推广公司营业执照
  • 网站广告的优势房屋装修效果图整套
  • wordpress网站关键词设置wordpress vip会员主题
  • 怎么做一个属于自己的网站深圳装修公司咨询
  • wordpress 翻译 每页搜索排名优化网站排名优化
  • 做名片的网站叫什么来着公司网站需要修改
  • 怎么修改网站标题关键词描述网站静态生成目录 名称 建议
  • 减肥网站模板网站建设买服务器价格
  • 什么叫微网站平台商城网站建设
  • 办事处网站建设网站建设小结
  • 网站上线备案自己公司网站设计
  • 嘉定企业网站开发建设域名怎么解析到服务器
  • 网站建设 说明my63777免费域名查询
  • 音乐网站制作源代码企业策划案怎么写
  • 怎么创建网站赚钱网站管理功能图
  • asp. net 做网站免费国外服务器租用