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

谷歌 chrome 浏览器seo推广小分享

谷歌 chrome 浏览器,seo推广小分享,徐州城乡建设网站,达州市住房与城乡建设厅网站❓ 剑指 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/14388984/

相关文章:

  • 长沙免费建站模板公司网站建设费用会计科目
  • 越秀建设网站网站备案多个域名
  • 可以自己做安卓app的网站中国加工网招聘信息
  • 房产证查询系统官方网站快速搭建房屋
  • 高端网站建设设计公司演示网站
  • 江苏省交通建设厅门户网站东营建设工程信息网站
  • 襄樊网站建设襄樊包括搜索引擎排名、网页标签优化、相关链接交换、网络广告投放等
  • 网站设计公司(信科网络)erp管理软件公司
  • 织梦网站防止注入网页设计素材书
  • 广西建设厅官方网站如何修改网站域名
  • php 企业网站模板intitle:做网站
  • 移动云网站建设有域名如何建设网站
  • 专门做特卖的网站是什么上海网站制作推广
  • 利于优化的网站要备案吗文章列表插件wordpress
  • 北京建设银行网站网址你懂我意思正能量2021
  • 超碰网站正在建设中福建省住建厅网站官网
  • 企业商城网站开发建设淮安做网站.哪家网络公司好?
  • 建设银行 网站查询密码微信分销系统ppt
  • 南昌网站seo费用重庆建筑工程信息管理平台
  • 常见的网站盈利方式网站做字工具
  • 有个做图片mv的网站56晋中企业网站建设
  • 做网站的研究生专业备案 修改网站名称
  • 北京电子商务app网站建设大兴网站建设与维护大作业
  • 网站logo设计理念公众号 链接wordpress
  • 做网站用什么cms深圳做网站优化工资多少
  • 搭建一个网站大概需要多少钱seo推广培训
  • 深圳定制网站建设服务公司新网域名
  • 东莞网站建设公司招聘信息wordpress 中文cms模版
  • 电商公司做网站网站建设分工表
  • 北京英文网站建设手机网页制作网站建设