leetcode8- 二叉树展开为链表

给你二叉树的根结点 root ,请你将它展开为一个单链表:

  • 展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。
  • 展开后的单链表应该与二叉树 先序遍历 顺序相同。

示例 1:

输入:root = [1,2,5,3,4,null,6]
输出:[1,null,2,null,3,null,4,null,5,null,6]

示例 2:

输入:root = []
输出:[]

示例 3:

输入:root = [0]
输出:[0]
/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {
private:queue<TreeNode*> qu;
public:void flatten(TreeNode* root) {first(root);TreeNode* tmp=root;if(qu.empty()) return ;else qu.pop();while(!qu.empty()){TreeNode* x=qu.front();qu.pop();tmp->left=nullptr;tmp->right=x;tmp=tmp->right;}return ;}void first(TreeNode* root){if(root!=nullptr){qu.push(root);}else{return;}first(root->left);first(root->right);}
};

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

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

相关文章

【ETAS CP AUTOSAR工具链】基本概念与开发流程

基于CP AUTOSAR进行控制器软件开发已渐渐成为业界的主流。CP领域中除了VECTOR&#xff0c;ETAS&#xff0c;EB&#xff0c;Mentor等外资公司&#xff0c;还有诸如普华&#xff0c;东软&#xff0c;恒润&#xff0c;华为等国产基础软件公司。 ETAS是在2015年推出的AUTOSAR量产版…

react09 hooks(useState)

react-09 hooks&#xff08;useState&#xff09; hooks组件&#xff08;函数组件动态化&#xff09; 其本质就是函数组件&#xff0c;引用一些hooks方法&#xff0c;用来在函数组件中进行例如状态管理&#xff0c;模拟类组件的生命周期等&#xff0c;只能运用到函数组件中 ho…

VMD变分编码器

ref&#xff1a;【变分模态分解(VMD)及其Python实现-哔哩哔哩】 https://b23.tv/bB9zPX1 注意看幅值 分别是1.0 0.25 1/16 画一张图上 蓝色&#xff1a;低频 绿色&#xff1a;高频信号 频谱看不懂 应用实例2

Linux实验一:NAT、桥接方式的验证

实验名称&#xff1a;在虚拟机中安装RHEL7&#xff0c;验证NAT、桥接上网方式 实验结果&#xff1a; 创建虚拟机 NAT模式 自动获取IP 手动配置IP 桥接模式 自动获取IP 手动配置IP 总结和分析&#xff1a;

深入解析K折交叉验证:原理、应用及优化策略(python实现 代码详解)

目录 一、K折交叉验证介绍 二、K折交叉验证的作用 三、在K折交叉验证中&#xff0c;每次模型的训练都是独立于上一次的 四、K折交叉验证用于比较不同模型的性能(python实现) 五、K折交叉验证用于超参数调优 六、K折交叉验证用于选择最优训练集和验证集&#xff0c;从而训练…

盲盒一番赏小程序:打开未知的惊喜之旅

在快节奏的生活中&#xff0c;人们总是渴望寻找一份属于自己的小确幸。盲盒一番赏小程序&#xff0c;正是这样一个为你带来无尽惊喜与乐趣的平台。我们精心打造这一小程序&#xff0c;让每一次点击都成为一次全新的探索&#xff0c;让每一次选择都充满无限可能。 盲盒一番赏小…

【Linux文件系统开发】认知篇

【Linux文件系统开发】认知篇 文章目录 【Linux文件系统开发】认知篇一、文件系统的概念二、文件系统的种类&#xff08;文件管理系统的方法&#xff09;三、分区四、文件系统目录结构五、虚拟文件系统&#xff08;Virtual File System&#xff09;1.概念2.原因3.作用4.总结 一…

【GoWeb框架初探————XORM篇】

1. XORM xorm 是一个简单而强大的Go语言ORM库. 通过它可以使数据库操作非常简便。 1.1 特性 支持 Struct 和数据库表之间的灵活映射&#xff0c;并支持自动同步事务支持同时支持原始SQL语句和ORM操作的混合执行使用连写来简化调用支持使用ID, In, Where, Limit, Join, Havi…

请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。

本文收录于专栏:算法之翼 https://blog.csdn.net/weixin_52908342/category_10943144.html 订阅后本专栏全部文章可见。 本文含有题目的题干、解题思路、解题思路、解题代码、代码解析。本文分别包含C语言、C++、Java、Python四种语言的解法和详细的解析。 题干 请编写一个函…

vector简单介绍

目录 学习语法&#xff0c;不必拘泥&#xff0c;重要的是要学会和理解。所有的一切&#xff0c;例如做题&#xff0c;学习、看书、各种行为都是手段&#xff0c;为着我们更好的运用。因为&#xff0c;最终都是为了更好的去理解某个东西&#xff0c;以便于更好的去改造这个世界…

C语言 | 自定义类型:联合和枚举

目录&#xff1a; ----前言 1. 联合体 1.1 联合体类型的声明 1.2 联合体的特点 1.3 相同成员的结构体和联合体对比 1.4 联合体大小的计算 1.5 联合的使用 1.6联合体的练习 2. 枚举 2.1 枚举类型的声明 2.2 枚举类型的优点 2.3 枚举类型的使用 --前言&#xff1a; c语言中内…

OpenVINO安装教程 npm版

从 npm Registry安装 OpenVINO™ 工具套件的英特尔发行版 请注意&#xff1a; 仅提供 JavaScript API 专用于所有主要操作系统的用户&#xff1a;Windows、Linux 和 macOS &#xff08;所有 x86_64 / ARM64 架构&#xff09; macOS 仅支持 CPU 推理 系统要求软件要求 Window…