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

【链表Linked List】力扣-117 填充每个节点的下一个右侧节点指针II

目录

问题描述

解题过程

官方题解


问题描述

给定一个二叉树:

struct Node {int val;Node *left;Node *right;Node *next;
}

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL 。

初始状态下,所有 next 指针都被设置为 NULL 。

示例 1:

输入:root = [1,2,3,4,5,null,7]
输出:[1,#,2,3,#,4,5,7,#]
解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。序列化输出按层序遍历顺序(由 next 指针连接),'#' 表示每层的末尾。

示例 2:

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

提示:

  • 树中的节点数在范围 [0, 6000] 内
  • -100 <= Node.val <= 100

解题过程

树的题目就是不会啊,直接学习解析吧,不挣扎了,横向遍历是一点思路都没有

官方题解

方法一:层次遍历

简述一下deque()容器:deque是"double-end queue"的简称,是collections模块中的,针对Python内置的容器,它类似于list,可以快速的在队列头部和尾部添加、删除元素,是栈和队列的一种广义实现,常使用append()从右端加入元素,popleft()移除列表左端的一个元素。

需要注意的是,root本身属于可迭代对象,所以在对queue赋值时,使用了[],如上述代码:

queue = deque([root])

首先得到根节点,最后通过循环获得对应的下一级的所有节点,再确定next指向。

http://www.lryc.cn/news/256712.html

相关文章:

  • 安卓adb【备忘录】
  • Linux笔记之删除指定目录下除最新修改的以 .pack 为扩展名的文件之外的所有文件
  • 什么是呼叫中心的语音通道?呼叫中心语音线路有几种?
  • 3D点云:平面模型上提取凸(凹)多边形方法
  • 论文笔记--A Fine-grained Interpretability Evaluation Benchmark for Neural NLP
  • NFC和蓝牙在物联网中有什么意义?如何选择?
  • 代码随想录二刷 |二叉树 | 二叉树的最小深度
  • 云上守沪 | 云轴科技ZStack成功实践精选(上海)
  • 2023 IoTDB 用户大会成功举办,深入洞察工业互联网数据价值
  • cache教程 3.HTTP服务器
  • redis应用-分布式锁
  • 51单片机程序
  • Android 分享小结
  • Ubunutu18.04 ROS melodic 无人机 XTDrone PX4 仿真平台配置
  • JVM 命令行监控及诊断工具
  • 飞天使-linux操作的一些技巧与知识点2
  • Android : 篮球记分器app _简单应用
  • 音视频之旅 - 基础知识
  • 分类预测 | SSA-HKELM-Adaboost麻雀算法优化混合核极限学习机的数据分类预测
  • 如何使用 Zotero 导出所选条目的 PDF 文件
  • minio的k8s的单机部署
  • Git 更改remote repo 地址
  • 24、文件上传漏洞——Apache文件解析漏洞
  • 使用Go快速开发TCP公共服务
  • QEMU环境调试方法
  • 京东数据运营(京东API接口):10月投影仪店铺数据分析
  • Aloha 机械臂的学习记录2——AWE:AWE + ACT
  • Spring Boot 项目的创建、配置文件、日志
  • MySQL:drop、delete与truncate区别
  • 2024年顶级的9个 Android 数据恢复工具(免费和付费)