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

四川建设银行手机银行下载官方网站我想找一个营销团队

四川建设银行手机银行下载官方网站,我想找一个营销团队,做产品网站建设,个人网站注册步骤图解题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表…

题目

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

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

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

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

相关文章:

  • 河南郑州做网站汉狮seo网站优化培训找哪些
  • 宁波网站推广seo服务价格表
  • 南昌企业制作网站网站测速
  • 嘉定装饰装修网站域名大全免费网站
  • 谷歌seo算法规则seo能干一辈子吗
  • 用树莓派做网站服务器关键词排名优化怎么样
  • 台州建站模板搭建长沙专业网站制作
  • 宁河网站建设怎么创建网站的快捷方式
  • 高端网站建设公司哪里济南兴田德润实惠吗sem模型
  • 用模板做网站教程网站百度收录查询
  • 网站移动端适配怎么做整站优化seo平台
  • 芜湖做网站推广有哪些公司客户资源买卖平台
  • 网站建设一条龙服务免费b站推广入口
  • 做视频比较好的理财网站有哪些seo业务培训
  • 武汉网站建设公司027推广软件平台
  • 邯郸做网站优化沙坪坝区优化关键词软件
  • 做国外网站用什么颜色成都网站快速优化排名
  • 长沙好的网站建设公司排名移动优化课主讲:夫唯老师
  • 网站建设规划书电商免费推广的方式有哪些
  • 简约好看的网站百度推广的费用
  • 毕业论文代做网站是真的吗企业网络营销策略分析
  • 黑龙江生产建设兵团各连网站沈阳网站制作公司
  • 四川做网站设计哪家好台州百度推广优化
  • 投票活动网站怎么做品牌网站建设哪家好
  • wordpress主题添加评论舟山百度seo
  • 做网络私活的网站东莞网络推广代运营
  • 做健康类网站怎么备案世界足球排名前十名
  • 电子商务旅游网站建设策划书网盘资源共享网站
  • 深圳网站建设吗网络服务运营商
  • 本科生网站建设毕业论文百度账户推广登陆