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

互动科技 网站中铁三局招聘信息2023

互动科技 网站,中铁三局招聘信息2023,企业网站模板下载哪里,网络推广服务商排名❓ 剑指 Offer 36. 二叉搜索树与双向链表 难度#xff1a;中等 输入一棵二叉搜索树#xff0c;将该二叉搜索树转换成一个 排序的循环双向链表。要求不能创建任何新的节点#xff0c;只能调整树中节点指针的指向。 为了让您更好地理解问题#xff0c;以下面的二叉搜索树为…❓ 剑指 Offer 36. 二叉搜索树与双向链表 难度中等 输入一棵二叉搜索树将该二叉搜索树转换成一个 排序的循环双向链表。要求不能创建任何新的节点只能调整树中节点指针的指向。 为了让您更好地理解问题以下面的二叉搜索树为例 我们希望将这个二叉搜索树转化为双向循环链表。链表中的每个节点都有一个前驱和后继指针。对于双向循环链表第一个节点的前驱是最后一个节点最后一个节点的后继是第一个节点。 下图展示了上面的二叉搜索树转化成的链表。“head” 表示指向链表中有最小元素的节点。 特别地我们希望可以就地完成转换操作。当转化完成以后树中节点的左指针需要指向前驱树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。 注意此题对比原题有改动。 思路中序递归遍历 由二叉搜索树的性质中序遍历即为 递增序列。所以可以在中序遍历的时候完成双向链表的转化 定义两个结点 head 和 end 分别指向已转换链表的 头结点 和 尾结点 inOrder(root) 中序递归遍历 终止条件当 root 为空时返回递归调用左子树inOrder(root.left) ;构建链表 当到达树的最左边的第一个叶子节点即为 head当 end 不为空时修改双向结点引用 即 end.right root, root.left end更新 end 即 end root; 递归调用右子树 inOrder(root.right) 。 最后将双向链表首尾相连head.left end , end.right head。 代码(C、Java) C /* // Definition for a Node. class Node { public:int val;Node* left;Node* right;Node() {}Node(int _val) {val _val;left NULL;right NULL;}Node(int _val, Node* _left, Node* _right) {val _val;left _left;right _right;} }; */ class Solution { private:Node* head nullptr;Node* end nullptr;void inOrder(Node* root){if(root nullptr) return;inOrder(root-left);if(head nullptr) head root;//树的最左边的第一个叶子节点为headroot-left end;if(end ! nullptr) end-right root;end root;inOrder(root-right);} public:Node* treeToDoublyList(Node* root) {inOrder(root);if(head ! nullptr){head-left end;end-right head;}return head;} };Java /* // Definition for a Node. class Node {public int val;public Node left;public Node right;public Node() {}public Node(int _val) {val _val;}public Node(int _val,Node _left,Node _right) {val _val;left _left;right _right;} }; */ class Solution {private Node head null;private Node end null;private void inOrder(Node root){if(root null) return;inOrder(root.left);if(head null) head root;//树的最左边的第一个叶子节点为headroot.left end;if(end ! null) end.right root;end root;inOrder(root.right);}public Node treeToDoublyList(Node root) {inOrder(root);if(head ! null){head.left end;end.right head;}return head;} }运行结果 复杂度分析 时间复杂度 O ( n ) O(n) O(n)其中 n 为二叉树的节点数中序遍历需要访问所有节点。空间复杂度 O ( n ) O(n) O(n)最差情况下即树退化为链表时递归深度达到 n系统使用 O ( n ) O(n) O(n) 栈空间。 题目来源力扣。 放弃一件事很容易每天能坚持一件事一定很酷一起每日一题吧 关注我LeetCode主页 / CSDN—力扣专栏每日更新 注 如有不足欢迎指正
http://www.hkea.cn/news/14435256/

相关文章:

  • 舟山市建设信息港网站app开发报价单及方案
  • 网站制作那家便宜外贸网站英文版
  • 湖南省重点建设项目办公室网站网站怎样才有流量
  • 怎么区分网站的好坏做网站如何赚广费
  • 什么是同ip网站网站底部 设计
  • 做软装设计能用到的网站有哪些专门做处理货的网站
  • 湖北省建设主管部门网站如何查询网站的空间商
  • 中国建设银行信用卡官方网站wordpress4.7.2卡
  • 建设部设计院网站建设网站个人银行
  • 中英文网站建设wordpress商品多选
  • 互动型网站模板建设网站的技术方案
  • 四会市城乡规划建设局网站万能浏览器手机版下载安装
  • 医院建筑设计案例常州自助建站seo
  • 网页设计规划书样本浙江seo博客
  • 兰州做网站优化的公司中国商业网
  • 做网站西宁苏州高新区核酸检测
  • 备案号查询网站网址怎样在网站上做营业执照公示
  • 烟台网站开发技术建设网站物业经理上岗证陈俊华
  • 网站开发报价表的文档中英文的网站设计
  • 宝安区网站建设培训理财网站如何做推广
  • 济南定制网站建设网页设计与网站建设全攻略pdf
  • 建设旅游网站的好处wordpress体验
  • 最流行的做网站语言开发公司年度工作总结
  • 企业网站建设报价单wordpress如何导航网站
  • 元谋县住房和城乡建设局网站哪家外贸网站做的好
  • 六安企业网站seo多少钱中信建设有限责任公司招投标
  • 网站优化公司的seo做的好常德网站制作
  • 目前有做电子合同的网站吗网络工程毕设做网站
  • 临海城市建设网站利用ionic做的网站
  • 苏州网站建设优化wordpress mysql 崩溃