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

宁波建设网站网络推广有多少种方法

宁波建设网站,网络推广有多少种方法,施工企业科技创新规划,网站建设视频教程集给定一个单链表的头节点 head ,其中的元素 按升序排序 ,将其转换为 平衡 二叉搜索树。 示例 1: 输入: head [-10,-3,0,5,9] 输出: [0,-3,9,-10,null,5] 解释: 一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高度…

给定一个单链表的头节点  head ,其中的元素 按升序排序 ,将其转换为 平衡 二叉搜索树。

示例 1:

输入: head = [-10,-3,0,5,9]
输出: [0,-3,9,-10,null,5]
解释: 一个可能的答案是[0,-3,9,-10,null,5],它表示所示的高度平衡的二叉搜索树。

示例 2:

输入: head = []
输出: []

提示:

  • head 中的节点数在[0, 2 * 104] 范围内
  • -105 <= Node.val <= 10

思路:先获取到链表的长度,然后去递归构造树即可,每次构造的树节点永远是链表或子链表的中心,但是由于是单向链表,所以每次获取链表中的节点的时候就会导致每次都从头开始,可以用循环链表改善,如果要构造的节点的坐标大于length/2的时候就next length -index次,然后递归构造,设置临界条件即可,若length为0就是无节点,如果length为1就是叶子节点。然后上代码:

/*** Definition for singly-linked list.* public class ListNode {*     int val;*     ListNode next;*     ListNode() {}*     ListNode(int val) { this.val = val; }*     ListNode(int val, ListNode next) { this.val = val; this.next = next; }* }*/
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/
class Solution {ListNode temp;public TreeNode sortedListToBST(ListNode head) {temp = head;// 思路就是取链表的中心节点,作为总树或子树的根节点,然后循环、递归int length = getListLength(head);return buildTree(0, length);}public TreeNode buildTree(int start ,int length) {int i = 0;ListNode t = temp;while (i < start + length/2) {t = t.next;i++;}// 如果是0,直接为nullif (length == 0) return null;// 如果length为1的时候,直接返回,因为它已经是树叶节点了if (length == 1) return new TreeNode(t.val, null, null);// 遍历到中心节点,就构造节点return new TreeNode(t.val, buildTree(start, length/2), buildTree(start + length/2 +1, length-1-length/2));}// 获取节点总节点数public int getListLength(ListNode head) {int length = 0;while(head != null) {length++;head = head.next;}return length;}}

快慢指针也是解决中间值问题的一个快速的解决办法,思路相同,只是取中间值的方法不同。

class Solution {public TreeNode sortedListToBST(ListNode head) {return buildTree(head, null);}public TreeNode buildTree(ListNode left, ListNode right) {if (left == right) {return null;}ListNode mid = getMedian(left, right);TreeNode root = new TreeNode(mid.val);root.left = buildTree(left, mid);root.right = buildTree(mid.next, right);return root;}public ListNode getMedian(ListNode left, ListNode right) {ListNode fast = left;ListNode slow = left;while (fast != right && fast.next != right) {fast = fast.next;fast = fast.next;slow = slow.next;}return slow;}
}

http://www.zhongyajixie.com/news/32890.html

相关文章:

  • 怎么套用模板做网站贵阳百度推广电话
  • 东丽区做网站百度最新收录方法
  • 做水果网站特点分析报告关键词搜索工具有哪些
  • 个人主页在哪里找关键词seo
  • 冠县网站建设搜狐新闻手机网
  • 新闻发稿计划怎么写免费的seo教程
  • 什么网站可以做装修效果图的谷歌网页
  • 太原优化型网站建设宁波seo推荐推广平台
  • 很有质感的网站深圳全网营销哪里好
  • 常州外贸集团 网站建设百度推广官方网站
  • 网站制作的公司哪家效果好英文seo是什么
  • 网站广告弹出来代码济南百度代理
  • 全能网站模板北京度seo排名
  • 芜湖服装网站建设百度关键词优化公司
  • 网站搭建工具的种类廊坊seo快速排名
  • 石家庄市住房城乡建设局网站googleplaystore
  • 在线教育网站建设重庆seo整站优化系统
  • wordpress插件排行seo排名优化点击软件有哪些
  • 梦里做他千百度网站中文网站排名
  • 推广网站排行榜需要优化的地方
  • wordpress 中文表单短视频关键词优化
  • 兄弟们给个能用的网站杭州最专业的seo公司
  • 怎么做qq代挂网站百度移动版
  • 科普网站设计免费的模板网站
  • 网站建设的公司哪家是上市公司杭州做网站的公司排行
  • 如何做网站的登录日志google关键词推广
  • 商品推销保定关键词优化软件
  • 网站开发流程 原型设计安徽网络seo
  • 网站 栏目做下拉网络营销和网上销售的区别
  • 破网站怎么注册今日新闻消息