网站辅导运营与托管公司网站建设服务网站建设

张小明 2026/1/10 8:50:33
网站辅导运营与托管公司,网站建设服务网站建设,网站内容如何建设,网站的关键词排名怎么做目录 基本要求 节点结构 核心算法#xff1a;中序遍历 指针修改 算法思想 递归实现 非递归实现 复杂度分析 时间复杂度#xff1a; 空间复杂度#xff1a; 基本要求 这是一个经典的算法问题#xff1a;将二叉搜索树#xff08;BST#xff09;转换成一个排序的双…目录基本要求节点结构核心算法中序遍历 指针修改算法思想递归实现非递归实现复杂度分析时间复杂度空间复杂度基本要求这是一个经典的算法问题将二叉搜索树BST转换成一个排序的双向循环链表或双向链表。通常题目要求是双向链表中的节点顺序与二叉搜索树的中序遍历顺序一致即升序。需要将节点的左右指针分别作为双向链表的前驱prev和后继next指针。有时要求链表是循环的头尾相连有时只要求是双向链表。原地转换不能创建新节点只能调整原有指针节点结构class Node { public: int val; Node* left; Node* right; Node(int _val) : val(_val), left(nullptr), right(nullptr) {} };核心算法中序遍历 指针修改算法思想利用BST(二叉搜索树)的中序遍历特性中序遍历BST会按升序访问所有节点在遍历过程中记录前一个访问的节点prev将当前节点与prev节点双向连接遍历完成后连接头尾节点形成循环递归实现class Solution { private: Node* prev nullptr; // 记录前驱节点 Node* head nullptr; // 记录链表头节点 // 中序遍历递归函数 void inorderTraversal(Node* curr) { if (!curr) return; // 1. 递归遍历左子树 inorderTraversal(curr-left); // 2. 处理当前节点 if (!prev) { // 第一个节点最小值设为头节点 head curr; } else { // 连接前驱和当前节点 prev-right curr; curr-left prev; } // 更新prev为当前节点 prev curr; // 3. 递归遍历右子树 inorderTraversal(curr-right); } public: Node* treeToDoublyList(Node* root) { if (!root) return nullptr; // 中序遍历并调整指针 inorderTraversal(root); //如果需要转换BST为双向循环链表不需要删除下面两行代码即可 // 连接头尾形成循环链表 head-left prev; // 头的前驱指向尾 prev-right head; // 尾的后继指向头 return head; } };非递归实现不使用递归通过显式栈来模拟中序遍历的过程在遍历过程中调整指针指向。class Solution { public: Node* treeToDoublyList(Node* root) { if (!root) return nullptr; Node* prev nullptr; Node* head nullptr; stackNode* st; Node* curr root; // 中序遍历迭代版 while (curr || !st.empty()) { // 左子树入栈 while (curr) { st.push(curr); curr curr-left; } // 弹出当前节点 curr st.top(); st.pop(); // 连接节点 if (!prev) { head curr; // 第一个节点 } else { prev-right curr; curr-left prev; } prev curr; curr curr-right; // 处理右子树 } //如果需要转换BST为双向循环链表不需要删除下面两行代码即可 // 形成循环 head-left prev; prev-right head; return head; } };复杂度分析时间复杂度O(n)每个节点被访问一次n为节点总数空间复杂度O(h)h为树的高度最坏情况链状树O(n)最好情况平衡树O(log n)
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

黄村做网站哪家好灯饰模板网站

Shell编程中的流程控制与位置参数使用 1. 流程控制之case语句 在编程里,流程控制是非常重要的一部分。之前在处理用户选择时,我们会用一系列 if 命令来判断用户选了哪个选项。不过,这种结构在程序里经常出现,所以很多编程语言(像shell)都提供了用于多选择决策的流程控…

张小明 2026/1/5 17:11:11 网站建设

网站改版服务谷歌怎么推广自己的网站

jQuery Validation 1.19.5 深度解析:多文件总大小验证完整指南 【免费下载链接】jquery-validation 项目地址: https://gitcode.com/gh_mirrors/jqu/jquery-validation jQuery Validation 插件在1.19.5版本中引入了革命性的多文件总大小验证功能&#xff0c…

张小明 2026/1/9 13:07:00 网站建设

烟台建设集团 招聘信息网站百度是网站吗

还在为订阅源分散、更新不及时而烦恼吗?GKD第三方订阅收录名单为你提供了一个智能化的订阅管理解决方案,让你轻松获取全网优质订阅资源,告别手动管理的繁琐过程。 【免费下载链接】GKD_THS_List GKD第三方订阅收录名单 项目地址: https://g…

张小明 2026/1/5 17:07:07 网站建设

优化网站建设公司网上建立公司网站

城通网盘直连解析工具:突破限速的技术实现 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 还在为城通网盘的下载速度而烦恼吗?传统的下载方式往往受到多重限制,导致文…

张小明 2026/1/7 5:52:38 网站建设

网站服务器崩溃做视频网站视频文件都存放在哪

网络连接与以太网局域网设置指南 在当今数字化时代,网络连接对于我们的生活和工作至关重要。无论是在家中使用电脑上网,还是在办公室组建局域网,都需要合适的网络设备和正确的设置方法。本文将详细介绍多种网络连接方式以及以太网局域网的设置方法,帮助你轻松实现网络连接…

张小明 2026/1/5 17:03:04 网站建设

建设企业网站服务网站管理与建设

服装公司ERP系统的重要性与作用 在现代服装行业,ERP系统扮演着至关重要的角色。它通过整合各类资源,实现了物流、资金流与信息流的高效管理,这不仅提升了公司内部的协同效率,也减少了信息孤岛现象。对于服装公司而言,E…

张小明 2026/1/6 23:31:09 网站建设