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

leetcode-114. 二叉树展开为链表

题目描述

给你二叉树的根结点 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]

思路

1)先序遍历二叉树到一个list里

2)遍历list,前一个节点为根,后一个节点为右孩子,在置左孩子为None

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def __init__(self):self.res = []def pretraverse(self, root):if not root:return Noneself.res.append(root)self.pretraverse(root.left)self.pretraverse(root.right)def flatten(self, root):""":type root: TreeNode:rtype: None Do not return anything, modify root in-place instead."""self.pretraverse(root)for i in range(1, len(self.res)):pre,cur = self.res[i-1], self.res[i]pre.left = Nonepre.right = cur

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • javaEE-02-servlet
  • 科普文:Linux系统安全加固指南
  • js 数组常用函数总结
  • [M模拟] lc2844. 生成特殊数字的最少操作(简单易错+分类讨论+代码优化技巧)
  • QtCMake工程提升类后找不到头文件
  • docker拉取错误解决
  • 【网络】socket和udp协议
  • Istio_01_Istio初识
  • Git、Gitlab以及分支管理
  • Spring Data Redis 报错 WRONGPASS invalid username-password pair问题解决
  • vue 进入页面自动刷新并且只刷新一次
  • DevExpress WinForms自动表单布局,创建高度可定制用户体验(二)
  • 多角度解析高防CDN防御DDOS及CC攻击
  • python:面向对象
  • 10.11和10.8那个大(各种ai的回答)
  • 「前端」从UglifyJSPlugin强制开启css压缩探究webpack插件运行机制
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 2019.2.20 c++ 知识梳理
  • dva中组件的懒加载
  • nodejs调试方法
  • Python打包系统简单入门
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • windows下使用nginx调试简介
  • 关于使用markdown的方法(引自CSDN教程)
  • 规范化安全开发 KOA 手脚架
  • 检测对象或数组
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #70结构体案例1(导师,学生,成绩)
  • #etcd#安装时出错
  • #include到底该写在哪
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (Redis使用系列) SpirngBoot中关于Redis的值的各种方式的存储与取出 三
  • (SpringBoot)第七章:SpringBoot日志文件
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (十六)一篇文章学会Java的常用API
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (续)使用Django搭建一个完整的项目(Centos7+Nginx)
  • (转)chrome浏览器收藏夹(书签)的导出与导入
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • ***测试-HTTP方法
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .net 4.0发布后不能正常显示图片问题
  • .net 7 上传文件踩坑
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .Net Core 生成管理员权限的应用程序
  • .NET/C# 使用 SpanT 为字符串处理提升性能