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

营销型网站案例分析asp网站模板如何修改

营销型网站案例分析,asp网站模板如何修改,河北石家庄属于几线城市,展示型网站 营销型网站题目 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 为了让您更好地理解问题,以下面的二叉搜索树为例: 我们希望将这个二叉搜索树转化为双向循环链表…

题目

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

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

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

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

相关文章:

  • 代做论文的网站有哪些好的淘宝商城
  • 扬州住房与城乡建设局网站大学网站 作风建设专题
  • 网站开发实战项目网站建设合同违约金一般多少
  • 如何为公司建立网站免费自助建站系统平台 贴吧
  • 水墨网站设计欣赏广州中智软件开发有限公司
  • 自建网站避免侵权seo推广哪家公司好
  • 苏州电商网站建设学生做的网站需要备案
  • 二七网建站做移动网站优化快速
  • wordpress discuz建站wordpress 毛玻璃
  • 商丘市建立网站公司WordPress搜狗不收录
  • 网站优化的方法与技巧羽毛球赛事直播平台
  • 怎样做一家迷你的特卖网站建设网站地图素材
  • 用ps可以做网站吗怎么在微信建立公众号
  • win8 网站模板2022年最火文案
  • 可以做彩字的网站环境设计案例网站
  • 廉江网站制作Wordpress 织梦 哪个容易
  • 网站建设验收需要注意什么物流企业的网站模板免费下载
  • 翼城网站建设北京建设教育协会网站
  • 服务器 网站建设 过程wordpress 评论次数
  • 上海做门户网站的公司网站中文域名好吗
  • 网站认证源码贵阳微信小程序制作开发
  • 做一家公司网站要注意哪些做外贸网站代理商
  • 重庆网站制作合作商营销广告网站
  • 成都大邑网站建设辽宁招标工程信息网
  • 查找网站空间商湖南企业建站系统平台
  • 建设银行网站设计特点宁夏建设厅网站旧版
  • 红酒网站建设模板服务公司口号
  • 网站怎么添加栏目中国建设企业网站
  • 网站定制开发北京网络服务网站建设
  • 网站开发语言查看器大连旅顺