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

找建筑类工作哪个网站好整个网站开发框架流程

找建筑类工作哪个网站好,整个网站开发框架流程,成都市高新区规划建设局网站,wordpress分类图片【试题描述】 求二叉树中任意两个节点的最近公共祖先也称为LCA问题#xff08;Lowest Common Ancestor#xff09;。 二叉查找树 如果该二叉树是二叉查找树#xff0c;那么求解LCA十分简单。 基本思想为#xff1a;从树根开始#xff0c;该节点的值为t#xff0c;如果t大… 【试题描述】 求二叉树中任意两个节点的最近公共祖先也称为LCA问题Lowest Common Ancestor。   二叉查找树 如果该二叉树是二叉查找树那么求解LCA十分简单。 基本思想为从树根开始该节点的值为t如果t大于t1和t2说明t1和t2都位于t的左侧所以它们的共同祖先必定在t的左子树中从t.left开始搜索如果t小于t1和t2说明t1和t2都位于t的右侧那么从t.right开始搜索如果t1t t2说明t1和t2位于t的两侧那么该节点t为公共祖先。 如果t1是t2的祖先那么应该返回t1的父节点同理如果t2是t1的祖先应该返回t2的父节点。 【参考代码】 1 public int query(Node t1, Node t2, Node t) {2 int left t1.value;3 int right t2.value;4 Node parent null;5 6 if (left right) {7 int temp left;8 left right;9 right temp; 10 } 11 12 while (true) { 13 if (t.value left) { 14 parent t; 15 t t.right; 16 } else if (t.value right) { 17 parent t; 18 t t.left; 19 } else if (t.value left || t.value right) { 20 return parent.value; 21 } else { 22 return t.value; 23 } 24 } 25 }   普通二叉树 算法思想如果一个节点的左子树包含pq中的一个节点右子树包含另一个则这个节点就是pq的最近公共祖先。 【参考代码】 解法一 1 public static Node findNCA(Node root, Node p, Node q)2 {3 if (isintree(root.left, p) isintree(root.left, q))4 return findNCA(root.left, p, q);5 if (isintree(root.right, p) isintree(root.right, q))6 return findNCA(root.right, p, q);7 return root;8 }9 10 public static boolean isintree(Node root, Node node) 11 { 12 if (root null) 13 return false; 14 if (root node) 15 return true; 16 return isintree(root.left, node) || isintree(root.right, node); 17 }   解法二 1 static int TWO_NODES_FOUND 2;2 static int ONE_NODES_FOUND 1;3 static int NO_NODES_FOUND 0;4 5 public static int covers(Node root, Node p, Node q)6 {7 int ret NO_NODES_FOUND;8 if (root null)9 return ret; 10 if (root p || root q) 11 ret 1; 12 ret covers(root.left, p, q); 13 if (ret TWO_NODES_FOUND) 14 return ret; 15 return ret covers(root.right, p, q); 16 } 17 18 private static Node findNCA(Node root, Node p, Node q) 19 { 20 if (q p (root.left q || root.right q)) 21 return root; 22 int nodesFromLeft covers(root.left, p, q); 23 if (nodesFromLeft TWO_NODES_FOUND) 24 { 25 if (root.left p || root.left q) 26 return root.left; 27 else 28 return findNCA(root.left, p, q); 29 } else if (nodesFromLeft ONE_NODES_FOUND) 30 { 31 if (root p) 32 return p; 33 else if (root q) 34 return q; 35 } 36 37 int nodesFromRight covers(root.right, p, q); 38 if (nodesFromRight TWO_NODES_FOUND) 39 { 40 if (root.right p || root.right q) 41 return root.right; 42 else 43 return findNCA(root.right, p, q); 44 } else if (nodesFromRight ONE_NODES_FOUND) 45 { 46 if (root p) 47 return p; 48 else if (root q) 49 return q; 50 } 51 52 if (nodesFromLeft ONE_NODES_FOUND 53 nodesFromLeft ONE_NODES_FOUND) 54 return root; 55 else 56 return null; 57 } 解法三网上版本 1 public static int FindNCA(Node root, Node a, Node b, Node out)2 {3 if (root null)4 return 0;5 if (root a || root b)6 return 1;7 8 int iLeft FindNCA(root.left, a, b, out);9 if (iLeft 2) 10 return 2; 11 12 int iRight FindNCA(root.right, a, b, out); 13 if (iRight 2) 14 return 2; 15 16 if (iLeft iRight 2) 17 out root; 18 19 return iLeft iRight; 20 } 这个网上说输出时 当为2时才输出但是为2时不能判断如果其中一个是另一个的父亲节点情况。所以理论上应该改为当返回结果大于0时就可以输出结果。但是不太确定正确性应该程序是正确的。   参考 http://blog.csdn.net/w397090770/article/details/7615447   转载于:https://www.cnblogs.com/WayneZeng/p/9290761.html
http://www.pierceye.com/news/256771/

相关文章:

  • 公司付的网站费怎么做分录黑色网站配色
  • 体育门户网站源码峰峰做网站
  • 山西网站建设多少钱电商网站建设需要
  • 海西电子商务网站建设wordpress 主题宽度
  • 网站建设首选公司wordpress需要mysql
  • 织梦 旅游网站模板深圳公司招牌制作
  • PHP网站开发如何建立vipwordpress页面伪静态
  • 主题公园旅游景区网站建设网站后台图片模板
  • 慈溪网站建设慈溪WordPress点击文章显示404
  • 网站建设与seo网站开发项目总结范文
  • 做竞彩网站代理犯法么建站公司 网站
  • 浙江建设证书查询seo服务公司深圳
  • 长沙协会网站设计专业服务医疗信息化软件公司排名
  • 北京网站制作一般多少钱黑色网站欣赏
  • 广州建设工程造价管理站wordpress获取文章title
  • 免费购物网站源码网站开发的论文引言
  • 商城网站开发需要哪些人员本机建的网站打开却很慢
  • 网站建设哪专业学会python做网站
  • vs怎么添加图片做网站地方门户网站管理系统
  • 三亚做网站的公司科技网站推荐
  • 电商网站运维怎么做自己做网站创业
  • seo有哪些网站集团公司网站 案例
  • 传媒大学附近网站建设公司天津市工程建设公众信息网官网
  • 关于网站建设与维护的参考文献家装设计费用多少钱一平方
  • 网站建设与管理专业概述网站建设报价费用是多少
  • asp医院网站源码破解版北京企业做网站报价
  • 个人做电商网站赚钱吗门业网站模板
  • 企业产品微网站收费吗wordpress移服务器改域名
  • 原创文章网站网站建设团队介绍
  • WordPress建站详细过程安康建设网站