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

填充每个节点的下一个右侧节点指针力扣--116,117

目录

题目

思路

代码


题目

116

给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:

struct Node {
  int val;
  Node *left;
  Node *right;
  Node *next;
}
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。

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

示例 1:

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

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

117

给定一个二叉树:

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 = []
输出:[]

思路

 同力扣102  层序遍历,只不过在单层遍历的时候记录一下本层的头部节点,然后在遍历的时候让前一个节点指向本节点就可以了

代码

/*
// 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) {Queue<Node> que=new LinkedList<>();//定义一个队列if(root!=null){que.offer(root);}while(!que.isEmpty()){int len=que.size();//他和下面那行不能互换Node a=que.poll();//把每层第一个节点弹出if (a.left != null) que.add(a.left);if (a.right != null) que.add(a.right);for(int i=1;i<len;i++){//从第二个结点开始Node n=que.poll();//弹出来if (n.left != null) que.add(n.left);if (n.right != null) que.add(n.right);a.next=n;//让他前面的指向后面a=n;//改变当前指针位置}}return root;}
}

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

相关文章:

  • DBUtils中QueryRunner(空参,传数据源)构造方法的区别及应用场景
  • STM32 TIM输入捕获 测量频率
  • Autosar-以太网是怎么运行的?(Davinci配置部分)
  • 16.[前端开发]Day16-HTML+CSS阶段练习(网易云音乐五)
  • langchain 实现多智能体多轮对话
  • Java-数据结构-优先级队列(堆)
  • C++实现状态模式
  • FreeRTOS学习笔记2:FreeRTOS的基础知识
  • 计算机网络之计算机网络的分类
  • 从理论到实践:Linux 进程替换与 exec 系列函数
  • Flutter常用Widget小部件
  • 微信小程序实战0 设置
  • 2025开源DouyinLiveRecorder全平台直播间录制工具整合包,多直播同时录制、教学直播录制、教学视频推送、简单易用不占内存
  • 使用 postman 测试思源笔记接口
  • 当WebGIS遇到智慧文旅-以长沙市不绕路旅游攻略为例
  • 阿里最新普通x231 逆向分析
  • php的使用及storm环境部署
  • 高可用 Keepalived 服务部署流程
  • 【新春特辑】2025年1月科技浪潮中的AI最新时事与科技趋势
  • 解决Django非ORM模型提示初始化request问题
  • G. XOUR
  • 有没有个性化的UML图例
  • 【RAG】SKLearnVectorStore 避免使用gpt4all会connection err
  • vue框架技术相关概述以及前端框架整合
  • Spring Boot + Facade Pattern : 通过统一接口简化多模块业务
  • 牛客周赛 Round 78
  • 【机器学习】自定义数据集 ,使用朴素贝叶斯对其进行分类
  • 02.01 生产者消费者
  • mac 手工安装OpenSSL 3.4.0
  • kamailio-ACC_JSON模块详解【后端语言go】