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

php 网站 模板郑州网络营销哪个好

php 网站 模板,郑州网络营销哪个好,wap游戏天下网游,达人室内设计网官方题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表…

题目

输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。

为了让您更好地理解问题,以下面的二叉搜索树为例:

我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。

下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。

特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。

解题思路

1.题目要求将二叉搜索树转换成一个排序的循环双向链表,既然他需要排序,那么我们就对二叉搜索树进行中序遍历,这样我们就可以得到有顺序的序列。

2.我们新建一个队列 queue ,然后对二叉搜索树进行中序遍历,并且将遍历的结果入队。

3.遍历结束后我们就得到了一个有序队列,这时我们只需要使用 whie 循环让队列中的元素出队并且将元素做一下连接,让前一个元素的right指针指向后一个元素,让后一个元素的left指针指向前一个元素。最后不要忘记首位元素的连接。

代码实现

class Solution {public Node treeToDoublyList(Node root) {if(root == null){return null;}Queue<Node> queue = new LinkedList<>();inOrder(root, queue);Node head = queue.poll();Node pre = head;while(!queue.isEmpty()){Node cur = queue.poll();pre.right = cur;cur.left = pre;pre = cur;}pre.right = head;head.left = pre;return head;}void inOrder(Node root, Queue<Node> queue){if(root == null){return;}inOrder(root.left, queue);queue.add(root);inOrder(root.right, queue);}
}

测试结果

 

http://www.hotlads.com/news/4109.html

相关文章:

  • 集团公司做网站的好处有什么软文推广的标准类型
  • 美女直接做的视频网站如何优化网页
  • 玉溪市城乡建设局网站网络营销的概念及内容
  • 自己做剧本网站怎样建网站赚钱
  • 网站开发模式有哪些短视频运营公司
  • 网站建设毕业设计报告书福州百度快速优化排名
  • 网站建设绩效目标魔贝课凡seo
  • 苏州市城市建设局网站帮别人发广告赚钱平台
  • 网站如何设置滚动页面百度官网登录入口
  • 茶陵网站建设seo常用优化技巧
  • 网站降权该怎么做360广告推广平台
  • wordpress表白主题seo站长助手
  • 河南有名的做网站公司软文推广哪个平台好
  • 有哪些做企业点评的网站网页优化seo广州
  • 手机h5建网站百度收录入口在哪里
  • 杭州市建设委员会官方网站店铺引流的30种方法
  • 温州营销网站制作联系电话b站推广形式
  • 无锡企业网站制作策划在百度上怎么发布广告
  • wordpress 商城模版一键优化下载安装
  • 春暖花开 wordpress主题单页应用seo如何解决
  • 广州的房地产网站建设新河seo怎么做整站排名
  • 做资讯网站需要哪些资质广告主平台
  • 天津建设工程交易中心网站站长工具seo综合查询工具
  • 可以做超大海报的网站百度竞价推广屏蔽软件
  • 网页显示站点不安全宁波seo托管公司
  • 建设部人事教育司网站一个新品牌怎样营销推广
  • 青岛做网站的费用线上销售怎么做推广
  • 电子政务网站建设背景网站定制的公司
  • 清河网站建设价格网上营销是干什么的
  • 网站推广设计做哪些网站优化推广seo公司