news 2026/1/2 20:30:52

--- 将二叉搜索树转化为排序的双向链表 ---

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
--- 将二叉搜索树转化为排序的双向链表 ---

他会给一个二叉搜索树,要求把他改为排好序的双向循环列表,并放回最小的值

对于二叉搜索树可以知道 对他进行中序遍历可以有序的获取到树中的元素,所以可以使用中序遍历来解决排序的问题

而如何将他改为双向链表按

既然时改为双向链表,那么前一个节点必须要知道,所以使用一个prev指针来维护和当前节点的前后指向关系,而我又要放回头节点,所以还需要一个head来记录头节点

对于这棵树 前序遍历一直到 1 节点,会触发修改节点指向的逻辑

这时head 为空 prev 为空,该节点也为最小的节点 所以head == 1节点, 而prev呢

他代表的时1 前面的节点,应该让1 节点的前驱 left 指向prev 然后prev 走到 1 节点,而prev为啥不维护后驱 prev.right呢 为空的嘛

继续回溯

当root 为2 节点

有prev不为空,这时就需要维护后驱了,prev.right = 2节点, 维护前驱 root.right= prev,

prev = root

这样就维护俩个节点之间的双向连接

最后退出递归时

head指向的时头 prev指向的时尾

需要再维护这俩个节点的连接然他们成为循环 前驱head.left=prev , 后驱prev.right=head

class Solution { Node pre, head; public Node treeToDoublyList(Node root) { if(root == null) return null; dfs(root); head.left = pre; pre.right = head; return head; } void dfs(Node root){ if(root == null) return; dfs(root.left); if(pre == null){ head = root; }else{ //后继 pre.right = root; } //前驱 root.left = pre; pre = root; dfs(root.right); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/17 9:56:47

产品中有哪些天才设计

产品中有哪些天才设计:机器人半夜重启 🤣商家记录产品使用寿命,定义市场需求还有哪些呢…

作者头像 李华
网站建设 2026/1/2 14:56:37

向量求导法

也就是说xT对x求导,就不会改变旁边的矩阵,相当于是1x对x求导得到的,会是旁边矩阵的T对于下面这个图片里面的2,这个如果A是常数的话,那结果就是2Ax

作者头像 李华
网站建设 2025/12/29 23:27:41

Elasticsearch下载地址及离线安装步骤

https://www.elastic.co/cn/downloads/past-releases?productelasticsearch 以下是基于 elasticsearch-6.4.0.tar.gz 和 elasticsearch-6.4.0.rpm 的离线安装详细步骤: 一、环境准备 1. 系统更新和依赖安装 # 更新系统 sudo yum update -y# 安装必要依赖 sudo y…

作者头像 李华
网站建设 2025/12/30 21:46:26

当日总结(2025年12月10日)

当日总结(2025年12月10日) 前言 去做,去试错,去迭代。 数组专题 704.二分查找 v0.127.移除元素 v0.1977.有序数组的平方 v0.1 12月1日复习专题100.相同的树 v0.2572.另一颗树的子树 v0.2 总结二叉树1.是否对称2.求最大深度3.求最小…

作者头像 李华
网站建设 2025/12/19 10:14:29

手写Tomcat代码整理(自用)

一、配置Maven环境新建项目需要加载,等右下方的进度条满就行。在D盘根目录上解压apache-maven-3.6.2-zip 同时在D盘根目录新建文件夹Maven二、手写Tomcat1、ServletConfigMappingpackage com.qcby.config;import com.qcby.lib.HttpServlet; import com.qcby.lib.Web…

作者头像 李华
网站建设 2026/1/1 1:24:06

雷科电力-REKE920S涂层测厚仪

一、概述:雷科电力-REKE920S涂层测厚仪是磁性、涡流一体的便携式涂层测厚仪,它能快速、无损伤、精密地进行涂、镀层厚度的测量。既可用于实验室,也可用于工程现场。本仪器能广泛地应用在制造业、金属加工业、化工业、商检等检测领域&#xff…

作者头像 李华