leetcode(填充每个节点的下一个右侧节点指针 II) - 详解

news/2025/9/24 19:29:30/文章来源:https://www.cnblogs.com/slgkaifa/p/19109834

leetcode(填充每个节点的下一个右侧节点指针 II) - 详解

给定一个二叉树:

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

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

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

思路:

采用层级遍历,也可以称广度优先遍历(BFS),建立一个队列存储,按每一层搜索查看

首先建立数组,将根节点放入,开始操作

计算此节点算在的这一层元素个数(队列长度),

对每一层,设一个pre节点初始化为null

for循环重复直到这一层元素均被遍历,使下一层它们的左右子结点均被加入。具体操作是

弹出首个节点,判断pre是否为null。如果为null表明此元素是这一层的首个元素,不需要指向。否则,设置他的next。判断完成后,将他的左右子结点(非空)加入队列。

/*
// Definition for a Node.
class Node {
public int val;
public Node left;
public Node right;
public Node next;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, Node _left, Node _right, Node _next) {
val = _val;
left = _left;
right = _right;
next = _next;
}
};
*/
class Solution {
public Node connect(Node root) {
if(root==null)
return null;
LinkedList queue = new LinkedList<>();
queue.add(root);
while(!queue.isEmpty()) {
int levelnum=queue.size();
Node prev=null;
for(int i=0;i

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

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

相关文章

做网站的就业前景泰州建设企业网站

为了避免用户在登录同一网站时频频输入账号、密码的现象&#xff0c;谷歌在自家的Chrome浏览器中贴心的加入了“自动填充功能”。那么&#xff0c;谷歌浏览器自动填充功能要怎么开启呢?不清楚操作方法的朋友&#xff0c;不妨收藏学习一下。 方法步骤 在Chrome地址栏输入“ch…

建设网站需要什么技术人员知名的企业网站建设

这个问题在我的电脑上由来已久&#xff0c;但是大部分的更新工作可以由其他第三方软件来完成&#xff0c;所有有时候得过且过。但同时&#xff0c;有一些棘手的问题&#xff0c;会提示系统进行 Windows Update&#xff0c;只有硬着头皮解决了。如果你遇到了“系统无法创建还原点…

湛江网站制作系统摄影素材网站

目的&#xff1a; 物理层要尽可能地屏蔽掉物理设备和传输媒体&#xff0c;通信手段的不同&#xff0c;使数据链路层感觉不到这些差异&#xff0c;只考虑完成本层的协议和服务。 给其服务用户&#xff08;数据链路层&#xff09;在一条物理的传输媒体上传送和接收比特流…

网站后台安全性配置购物商城app建设

目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1 网络架构与特征提取 4.2 输出表示 4.3损失函数设计 4.4预测阶段 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 load yolov2.mat% 加载…

linux系统下nginx网站ssl证书自动续签

本文使用 acme.sh + 自动续签 + Nginx reload 1.安装 acme.shcurl https://get.acme.sh | shacme.sh 在申请证书时,默认使用 ZeroSSL 作为 CA(证书颁发机构),ZeroSSL 免费额度有限(通常每月 3 张 DV 证书免费),…

C#使用Bitmap操作图像的基础方法

Bitmap概述 Bitmap是C# 中用于处理图像的核心类之一,位于System.Drawing命名空间中。它封装了GDI+位图,允许开发者加载、保存、显示和操作图像文件或内存中的位图资源。Bitmap 类支持多种图像格式,包括 BMP、JPG、P…

icp ip 网站备案网站怎么做定时任务

我们都知道&#xff0c;想要在函数中修改某个变量的值&#xff0c;传变量本身是没有用的。原因在于不同的函数在不同的空间上&#xff0c;函数的生命周期随着函数的调用而结束&#xff0c;因此在函数内部进行的值操作是不会对函数外的变量产生影响的。所以在函数里面想要修改变…

西昌市住房与城乡建设厅网站百度账号找回

图像对任何网站都至关重要,可以增强视觉吸引力和用户体验。但是,图像也会显着影响网站的加载时间,因此必须针对 Web 使用对其进行优化。一种方法是使用正确的图像格式。

知识学报:位运算(1)

不是题解不是教学!!!!! 9.24 洛谷 P4310 题目给定一个长度为 n 的数组,选取一个子序列,使子序列相邻的数之间的 AND 不为 0, 问子序列最长为多少。 很容易想到对于第 i 个数,可以找到之前子序列长度最大的一个…

ThinkPHP在启用nginx反向代理后如何获取真实的Ip地址

ThinkPHP在启用nginx反向代理后如何获取真实的Ip地址pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&quo…

CentOS 7 下 Kubernetes 集群搭建与配置指南

环境准备 系统要求至少3台CentOS 7服务器(1个Master,2个Worker节点)每台服务器至少2GB RAM,2核CPU所有节点间网络互通关闭防火墙和SELinux(生产环境请按需配置)主机规划示例 主机名IP地址角色k8s-master 192.168…

wpf 自定义输入ip地址的文本框 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站建设图文做营销网站视频

【JavaEE】Spring Boot 开发要点总结&#xff08;3&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;3&#xff09;1. 日志有什么作用2. 日志格式2.1 日志框架原理 3. 日志的打印3.1 System.out.println3.2 使用日志框架3.3 日志级别3.3.1 设置默认日志显…

模板式自助建站wordpress ping服务器

git误操作带来的麻烦-merge 我想将一个分支的内容完全覆盖远程另外一个分支的内容怎么做 如果你想将一个本地分支&#xff08;我们称之为source-branch&#xff09;的内容完全覆盖远程的另一个分支&#xff08;我们称之为target-branch&#xff09;&#xff0c;可以按照以下步…

徐州做网站最好的公司网站在线制作软件

前言&#xff1a;希望通过本文&#xff0c;使MySQL5.7.18的使用者知晓分区表使用中存在的陷阱&#xff0c;避免在该版本上继续踩坑。同时通过对源码的分享&#xff0c;升级MySQL5.7.18时分区表性能下降的根本原因&#xff0c;向MySQL源码爱好者展示分区表实现中锁的运用。问题描…

【macOS】垃圾箱中文档无法清理的“含特殊字符文件名”的技巧

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

公司网站简介开发定制软件系统

文章目录 象棋王子电子木鱼BabyGo 象棋王子 考点&#xff1a;前端js代码审计 直接查看js源码&#xff0c;搜一下alert 丢到控制台即可 电子木鱼 考点&#xff1a;整数溢出 main.rs我们分段分析 首先这段代码是一个基于Rust的web应用程序中的路由处理函数。它使用了Rust的异步…

Git 工作树 (worktree)、合并 (merge) 流程、拉取请求 (PR) 机制,以及基线分支概念

提升效率:掌握 Git 工作流中的高阶技巧与基线管理在团队协作和复杂项目开发中,高效使用 Git 远不止 commit 和 push 这么简单。掌握 git worktree、规范的合并流程和 PR 机制,是提升开发效率的关键。本文将为您梳理…

【HD300I 】基于昇腾 310P 的全国产化智能计算模组

产品概述 HD300I 是一款基于昇腾 310P 的全国产化智能计算模组。该模 组将昇腾 310P 芯片集成在了一个 140*80mm 的板卡上,可以作为一 个紧凑的核心模块,进行功能的扩展,能够快速搭建起一个 AI 边缘智 能计算推理的…

mvc做的网站如何发布访问新建网站的评估

2019独角兽企业重金招聘Python工程师标准>>> 俗话说的好啊&#xff0c;“工于利启事&#xff0c;必先善其器”&#xff0c;如果说你的编程功底是一个枪法的话&#xff0c;那么强大的eclipse就是android战士们最好的武器。 这里&#xff0c;我们来总结eclipse的使用技…