LCR 155 将二叉树转化为排序的双向循环链表

一开始连题目都没怎么看懂,为什么一个已排序的双向循环链表还是二叉树啊。后面看了题解后就差不多懂了,反正就是把二叉搜索树变成从根节点往下数的时候是顺序的。那么怎么遍历该搜索二叉树顺序就对了呢?中序遍历就好了

题目

将一个 二叉搜索树 就地转化为一个 已排序的双向循环链表 。

对于双向循环列表,你可以将左右孩子指针作为双向循环链表的前驱和后继指针,第一个节点的前驱是最后一个节点,最后一个节点的后继是第一个节点。

特别地,我们希望可以 就地 完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中最小元素的指针。

示例 1:

输入: root = [4,2,5,1,3] 输出: [1,2,3,4,5]解释: 下图显示了转化后的二叉搜索树,实线表示后继关系,虚线表示前驱关系。

代码与解析

/*
// 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 {Node pre, head;public Node treeToDoublyList(Node root) {if(root == null)    return root;dfs(root);head.left = pre;pre.right = head;return head;}public void dfs(Node cur) {if(cur == null) return;dfs(cur.left);if(pre == null) head = cur;else pre.right = cur;cur.left = pre;pre = cur;dfs(cur.right);}}

以上代码我就不配注释了,我觉得题解里面的无论是k神的还是评论里面的解释都已经挺好的了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/608220.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

你的策略盈利能力怎么样?谈谈伦敦金的回测交易

建立了一个交易系统后,投资者如何测试其有效性呢?有的人会提出让投资者尝试着在实盘或者模拟交易中应用,这个方法是好,但花费的时间较长。有人会就建议,让投资者去做回测。回测是指投资者选定一段历史行情之后&#xf…

【ChCore Lab 00】ChCore Lab 环境简单搭建

[实验环境]: OS: Ubuntu 22.04 LTS 1. 搭建编译和运行环境 实验环境至少需要 arm-gcc、docker 其中之一或者 qemu。首先 git 是必不可少的。 sudo apt-get install git -y安装交叉编译工具链。 sudo apt-get install gcc-aarch64-linux-gnu安装lab运…

Linux 期末复习

Linux 期末复习 计算机历史 硬件基础 1,计算机硬件的五大部件:控制器、运算器、存储器、输入输出设备 2,cpu分为精简指令集(RISC)和复杂指令集(CISC) 3,硬件只认识0和1,最小单位是bit,最小存储单位是字…

React 类组件和函数组件

组件component 一.概念 Element VS Component (元素与组件) //不成文的约定:元素小写,组件大写 const divReact.createElement(div,...) 这是一个React元素(小写) const Div()>React.createElement(div,...) 这是一个React组件(大写) 什么是组件? 能跟其他…

FineBI实战项目一(8):每天每小时订单笔数

1 明确数据分析目标 统计每个小时产生的订单个数 2 创建用于保存数据分析结果的表 create table app_hour_orders(id int primary key auto_increment,daystr varchar(20),hourstr varchar(20),cnt int ); 3 编写SQL语句进行数据分析 selectsubstring(createTime,1,10) as …

Redis服务器配置文件的常用配置

# 网络配置 bind 127.0.0.1 # 绑定的IP地址,默认为本地回环地址,0.0.0.0表示监听所有地址 port 6379 # 监听的端口号,默认为6379 tcp-backlog 511 # TCP连接的backlog队列长度,默认为511 tcp-…

如何向管理层制作出优秀的经营分析报告?

在数字化时代,企业不管规模大小,不管是哪个行业,都会有月度、季度、年度经营分析会议,有些是复盘性的,有些是决策性的,面对企业管理层,如何制作出让领导满意且有价值的经营分析报告?…

希尔顿花园酒店喜迎入华十周年里程碑

【2024年1月8日,中国,上海】作为希尔顿集团旗下标志性高端精选服务酒店品牌,希尔顿花园酒店于今年正式迎来其在华经营十周年的里程碑。自2014年中国首家希尔顿花园酒店在深圳开业以来,中国市场已经成为希尔顿花园酒店全球增长的重…

服务器里面打开浏览器访问不了会是什么原因

我们在日常使用服务器的过程中,时常会有遇到各类情况,近日就有遇到用户联系到德迅云安全,反馈自己在服务器里面打不开浏览器,服务器里面没有网络无法访问的情况。那我们今天就来讲下服务器里面打不开网站可能是由哪些原因导致。 …

奇偶链表00

题目链接 奇偶链表 题目描述 注意点 在 O(1) 的额外空间复杂度和 O(n) 的时间复杂度下解决这个问题偶数组和奇数组内部的相对顺序应该与输入时保持一致 解答思路 奇数组的头节点是head,偶数组的头节点是head.next,关键是要改变每个节点的next指针及…

PPT插件-布局参考-增加便携尺寸功能

PPT自带的尺寸为很久的尺寸,很多尺寸不常用,这里增加一些画册尺寸,用于PPT排版设计。 软件介绍 PPT大珩助手是一款全新设计的Office PPT插件,它是一款功能强大且实用的PPT辅助工具,支持Wps Word和Office Word&#x…

众和策略:尔滨!6连板!

1月9日,A股首要指数早盘震动上行。到午间收盘,沪指涨0.34%,深证成指涨0.36%,创业板指涨0.48%,北向资金净买入10.65亿元。 盘面上,冰雪游带火A股商场相关概念股,抢手股大连圣亚、长白山再封涨停…

c++ 智能指针 unique_ptr

使用指针时很容易出现内存泄漏,便引入了智能指针,c 11中主要有三类 std::unique_ptr:独占资源指针,同一时刻只能有一个指针指向同一个对象std::shared_ptr:共享资源指针,同一时刻可以有多个指针指向同一个…

数据增强的基本概念和应用

数据增强对于深度学习具有重要的意义,可以作为一个单独的模块应用于各种各样的任务中。为了加深对数据增强常用库的方法介绍,通过使用实际案例分析实现这些方法,使自己加深对计算机视觉领域下的数据增强的理解。 一.数据增强的概念 数据增强…

C++之模板类template

在C中,模板类是一种允许你编写通用类以处理各种数据类型的机制。通过使用模板类,你可以编写一次代码,然后使用不同的数据类型进行实例化,而无需为每种数据类型都编写一个新类。这有助于实现代码的重用和泛化。 一个实例&#xff…

【C语言】操作符

操作符分类 算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号操作符下标引用、函数调用和结构成员操作符 算术操作符 除了 % 操作符之外,其他的几个操作符可以作用于整数和浮点数。 对于 / 操作符如果两个操作数都为整数&am…

伺服电机:编码器原理与分类

什么是编码器? 编码器是将旋转位置的改变转换为电气信号。 编码器是伺服系统闭环控制不可缺少的部件,编码器应用在轴的闭环控制和大多数的自动化控制中。编码器为闭环控制提供位置或速度的实际测量值。 一、编码器的分类 从编码器的原理和产生的信号类…

数据结构之二叉搜索树(Binary Search Tree)

数据结构可视化演示链接,也就是图片演示的网址 系列文章目录 数据结构之AVL Tree 数据结构之B树和B树 数据结构之Radix和Trie 文章目录 系列文章目录示例图定义二叉搜索树满足的条件应用场景 示例图 二叉 线形(顺序插入就变成了线性树,例如插入顺序为&…

前端八股文(网络篇)一

目录 1.Get和Post的请求的区别 2.常见的HTTP请求头和响应头 3.常见的HTTP请求方法 4.HTTP与HTTPS协议的区别 5.对keep-alive的理解 6.页面有多张图片,HTTP是怎样的加载表现? 7.HTTP请求报文是什么样的? 8.HTTP响应报文是什么样&#x…

[uniapp] uni-ui+vue3.2小程序评论列表组件 回复评论 点赞和删除

先看效果 下载地址 uni-app官方插件市场: cc-comment组件 环境 基于vue3.2和uni-ui开发; 依赖版本参考如下: "dependencies": {"dcloudio/uni-mp-weixin": "3.0.0-3090820231124001","dcloudio/uni-ui": "^1.4.28","…