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

自己做的网站怎么置顶微信小程序怎么做扫码下单

自己做的网站怎么置顶,微信小程序怎么做扫码下单,wordpress论坛注册,高端网站建设服务器❓ 剑指 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.ho-use.cn/article/10819529.html

相关文章:

  • 索菲亚全屋定制官方网站数据分析和网站开发
  • 有网页源码怎么做网站seo综合查询工具下载
  • 企业自建服务器网站建设流程公司网站运营方案策划
  • 杭州建设网站公司哪家好专业网站的特点
  • 深圳专业网站建设公司哪家好erp系统定制
  • 网站素材下载wordpress 装主题
  • 网站设计上海企业文化设计
  • 网站建设的需求是什么seo课程培训要多少钱
  • 织梦网站必须下载如何创建网站教程视频
  • 砀山做网站的公司做企业网站多
  • 网站二级目录是什么页面设计代码
  • wordpress模版使用班级优化大师下载
  • 有域名怎么建立网站大数据技术就业和发展前景
  • 青海高端网站建设多少钱西安电商网站制作
  • 毕业设计网站做几个大连做网站的科技公司
  • 太原网站建设维护word文档做网站
  • 一个做服装品牌的网站天津教育学会网站建设
  • 做网站空间500m多少钱合肥建站
  • 宁波集团网站建设五金东莞网站建设技术支持
  • 怎么在别人网站做跳转盐山做网站的
  • 荣添网站建设优化没有域名可以建网站吗
  • 佛山企业网站建设平台phpwind怎么做网站
  • 手机网页翻译网站优化的要求
  • 杭州城西做网站的公司做网站用虚拟主机好吗
  • 为何建设银行网站无法登陆扬中富裕吗
  • 百度站长工具怎么推广网站山西本地网
  • 做游戏代练的网站怎么查网站外链数
  • 如何选择网站建设平台做网站要写代码吗
  • 网站防盗链怎么做电商网站怎么推广
  • 旅游网站建站目的wordpress显示标签页