当前位置: 首页 > 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.zqtcl.cn/news/256771/

相关文章:

  • 做的最好的视频教学网站南阳网站seo推广公司哪家好
  • 大气集团企业网站模板seo网站是什么意思
  • 张家口网站建设公司柒零叁网站建设湖南长沙
  • 网站建设合同或方案书手机链接ppt在哪个网站做
  • 宁波专业做网站免费网站模板大全
  • 高站网站建设平台设计标准
  • api网站模板wordpress 函数api文件
  • 泉州哪个公司网站做的好百度反馈中心
  • 宽屏蓝色企业网站源码软件工程师英文
  • 中企动力网站建设公司网站的设计路线
  • 宠物网站制作内容正规货源网站大全
  • 网站建设pc端软件公司简介
  • 科技公司企业网站源码如何免费建购物网站
  • 用动物做网站名甘肃省城乡建设网站
  • 重庆网站制作长沙榆林网站建设
  • 加快政务公开网站建设在中企动力工作的感受
  • 佛山网站搜索排名宿迁新站seo
  • 上海免费网站建设公司南通高端网站
  • 网站被镜像 站长学院那个网站都有做莱的图片
  • 个人简历 网站开发做同城网站需要哪些手续
  • 建网站的公司南京网站权重是什么
  • 网站建设策略百度云域名没有备案怎么做网站
  • 档案网站建设图片网站名查找
  • 九亭镇村镇建设办官方网站好看的网站设计公司
  • 怎样建立门户网站怎么用wordpress模板
  • 潍坊专业建站wordpress建个人博客
  • 手把手网站开发网站建设违法行为
  • 网站模板插件做网站要审批吗
  • 建立网站如何盈利有哪些做室内设计好用的网站有哪些
  • 商城网站设计服务商网站开发时的闭包写法