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

建设营销型网站的步骤网站怎么维护更新

建设营销型网站的步骤,网站怎么维护更新,个人住房公积金贷款,腊肉网站的建设前景根据前序遍历结果构造二叉搜索树-力扣 1008 题 题目说明#xff1a; 1.preorder 长度1 2.preorder 没有重复值 直接插入 解题思路#xff1a; 数组索引[0]的位置为根节点#xff0c;与根节点开始比较#xff0c;比根节点小的就往左边插#xff0c;比根节点大的就往右…根据前序遍历结果构造二叉搜索树-力扣 1008 题 题目说明 1.preorder 长度1 2.preorder 没有重复值 直接插入 解题思路 数组索引[0]的位置为根节点与根节点开始比较比根节点小的就往左边插比根节点大的就往右边插插入的前提是要插入的位置是Null 注意根据前序遍历的结果可以唯一地构造出一个二叉搜索树 对于前序遍历不是太理解的作者推荐适合小白的文章 二叉树的初步认识_加瓦不加班的博客-CSDN博客 // 8 5 1 7 10  /*                 8                / \               5   10              / \   \             1   7  12          */ // 8 5 1 7 10 /*8/ \5 10/ \ \1 7 12*/ public TreeNode bstFromPreorder(int[] preorder) {//数组索引[0]的位置为根节点TreeNode root insert(null, preorder[0]);for (int i 1; i preorder.length; i) {insert(root, preorder[i]);}return root; }private TreeNode insert(TreeNode node, int val) {//找到空位了就创建一个新节点将val插入进去if (node null) {return new TreeNode(val);}if(val node.val) {//继续查询空位 如果查询到空位要和父节点建立关系node.left insert(node.left, val);} else if(node.val val){node.right insert(node.right, val);}return node; } 上限法 解题思路 //依次处理prevorder中每个值返回创建好的节点或者null //1.如果超过上限返回null 作为孩子返回 //2.如果没超过上限创建节点并设置其左右孩子 //  左右孩子完整后返回 //依次处理prevorder中每个值返回创建好的节点或者null //1.如果超过上限返回null 作为孩子返回 //2.如果没超过上限创建节点并设置其左右孩子 // 左右孩子完整后返回 public TreeNode bstFromPreorder(int[] preorder) {return insert(preorder, Integer.MAX_VALUE); }int i 0; private TreeNode insert(int[] preorder, int max) {//递归结束条件if (i preorder.length) {return null;}int val preorder[i];System.out.println(val String.format([%d], max));if (val max) {//如果超过上限返回null 作为孩子返回return null;}//如果没超过上限创建节点并设置其左右孩子TreeNode node new TreeNode(val);i;node.left insert(preorder, node.val); node.right insert(preorder, max); return node; } 依次处理 prevorder 中每个值, 返回创建好的节点或 null 作为上个节点的孩子 如果超过上限, 返回 null 如果没超过上限, 创建节点, 并将其左右孩子设置完整后返回 i 需要放在设置左右孩子之前意思是从剩下的元素中挑选左右孩子 分治法 解题思路 //分治法 8,5,1,7,10,12 //8根  左5,1,7   右10,12 //5根  左1     右7 //10根 左null  右12 //我们如何去分治呢首先我们找到的是 题目给出的是前序遍历出来的那么我们只要找到比根节点大的数开始就可以区分左、右子树的范围 //分治法 8,5,1,7,10,12 //8根 左5,1,7 右10,12 //5根 左1 右7 //10根 左null 右12//我们如何去分治呢首先我们找到的是 题目给出的是前序遍历出来的那么我们只要找到比根节点大的数开始就可以区分左、右子树的范围 public TreeNode bstFromPreorder(int[] preorder) {return partition(preorder, 0, preorder.length - 1); } //int start, int end 告诉处理范围 private TreeNode partition(int[] preorder, int start, int end) {//结束条件if (start end) {return null;}//获取根节点 创建根节点对象TreeNode root new TreeNode(preorder[start]);//跳过根节点开始找左、右子树的范围int index start 1;//条件是一直找到区域的结束while (index end) {//区分左、右子树的范围if (preorder[index] preorder[start]) {break;}index;}//此时 index 就是左、右子树的分界线root.left partition(preorder, start 1, index - 1);root.right partition(preorder, index, end);return root; } 刚开始 8, 5, 1, 7, 10, 12方法每次执行确定本次的根节点和左右子树的分界线 第一次确定根节点为 8左子树 5, 1, 7右子树 10, 12 对 5, 1, 7 做递归操作确定根节点是 5 左子树是 1 右子树是 7 对 1 做递归操作确定根节点是 1左右子树为 null 对 7 做递归操作确定根节点是 7左右子树为 null 对 10, 12 做递归操作确定根节点是 10左子树为 null右子树为 12 对 12 做递归操作确定根节点是 12左右子树为 null 递归结束返回本范围内的根节点
http://www.hyszgw.com/news/91344/

相关文章:

  • 电子商务网站建设前期规划方案音乐分享网站开发
  • 网站建设平台推荐毛绒玩具东莞网站建设
  • 住房和城乡建设网站网站设计需要什么软件
  • 嘉兴学网站建设sem培训班
  • 可以做引流网站的源码南京城乡住房建设厅网站
  • 无锡网站建设技术珠海论坛网
  • 福清建设局网站手机网站端域名怎样做解析
  • 上市公司数据查询网站drupal 网站建设
  • 东明菏泽网站建设长春专业网站建设公司
  • 怎么调查建设网站免费注册域名网站知乎
  • 厦门网站备案邢台网站建设邢台
  • 建设个人网站步骤安远网站建设
  • 湖北省住建厅网站官网wdcp 无法访问此网站
  • 济南网站建设外包公司上海网站建设报价方案
  • 以net结尾的网站怎么提交公司网站
  • 包头网站制作 建设做公司网站需要什么程序
  • 网站建设好怎么才有生意安卓软件下载平台
  • 美克美家网站建设九九建筑网66kv架空线路设计视频讲座
  • 做线上网站需要钱吗网站设计 注意
  • 北京网站改版费用温州网站制作设计
  • 移动建站平台有哪些然后搭建网站
  • 网站筹备建设情况学编程用什么笔记本电脑比较好
  • 怎么用dw做响应式网站wordpress默认登录页面
  • 未来做哪些网站致富做网站需要多钱
  • 长宁区科技网站建设网站开发总结800字
  • 有自己域名的个人网站关于网络的网站怎么做
  • 重庆网站建设沛宣火速网站建设
  • asp.net 4.0网站开发 下载大型网站快速排名
  • 旅游网站设计与分析黄页88的盈利模式
  • 长春网站推广方式.net网站服务器