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

ppt网站模板淘宝关键词指数

ppt网站模板,淘宝关键词指数,wordpress固定,一键下载安装微信题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表…

题目

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

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

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

下图展示了上面的二叉搜索树转化成的链表。“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.tj-hxxt.cn/news/22703.html

相关文章:

  • 学习网站开发思路嵌入式培训班一般多少钱
  • icp备案网站信息查询网络营销优化培训
  • 做电脑网站与手机上的一样吗腾讯企点app
  • 电商网站开发背景今天的新闻 联播最新消息
  • 移动端网站怎么做的seo百度快速排名软件
  • 海珠区有没有专门做网站的地方牛奶软文广告营销
  • 有什么网站可以做问卷调查app拉新推广平台渠道商
  • 网站托管平台免费创建网站软件
  • 网站建设资金方案培训机构排名
  • web是网站设计和建设吗郑州seo顾问外包公司
  • 永康网站建设百度推广是怎么做的
  • 企业网站开发综合实训全国推广优化网站
  • 在线diy网站推广之家app下载
  • 电商网站开发 csdn长春网站seo公司
  • 香港免备案虚拟主机佛山seo优化
  • 做自媒体需要关注什么网站武汉整站优化
  • 网站开发答辩演讲小时seo加盟
  • 什么是互联网企业惠州seo排名收费
  • 电影网站建设视频教程微信营销的10种方法技巧
  • 怎么修改网站首页logo5118网站如何使用免费版
  • 网站定位有哪些网站播放视频速度优化
  • 产品平面广告设计北京官网seo收费
  • 汕头网站制作找哪里2021年关键词排名
  • 手机可以制作网站吗站长工具seo综合查询下载
  • 昆明网站建设排名中国新闻
  • wordpress上传到服务器优化seo方案
  • 优品ppt模板免费下载网站seo发外链的网站
  • 怎么用PS做网站广告图seo培训班 有用吗
  • 重庆网站推广专家网站是如何建立的
  • 怎么注册com网站免费的抖音关键词搜索指数