leetcode 117. 填充每个节点的下一个右侧节点指针 II(Populating Next Right Pointers in Each Node II)...
目录
- 题目描述:
- 示例:
- 解法:
题目描述:
给定一个二叉树
struct Node {
int val;
Node left;
Node right;
Node *next;
}
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL
。
初始状态下,所有 next 指针都被设置为 NULL
。
示例:
输入:{"$id":"1","left":{"$id":"2","left":{"$id":"3","left":null,"next":null,"right":null,"val":4},"next":null,"right":{"$id":"4","left":null,"next":null,"right":null,"val":5},"val":2},"next":null,"right":{"$id":"5","left":null,"next":null,"right":{"$id":"6","left":null,"next":null,"right":null,"val":7},"val":3},"val":1}输出:{"$id":"1","left":{"$id":"2","left":{"$id":"3","left":null,"next":{"$id":"4","left":null,"next":{"$id":"5","left":null,"next":null,"right":null,"val":7},"right":null,"val":5},"right":null,"val":4},"next":{"$id":"6","left":null,"next":null,"right":{"$ref":"5"},"val":3},"right":{"$ref":"4"},"val":2},"next":null,"right":{"$ref":"6"},"val":1}解释:给定二叉树如图 A 所示,你的函数应该填充它的每个 next 指针,以指向其下一个右侧节点,如图 B 所示。
提示:
- 你只能使用常量级额外空间。
- 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。
解法:
/*
// Definition for a Node.
class Node {
public:int val;Node* left;Node* right;Node* next;Node() {}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 root;}else{Node* head = root;Node* pre = NULL;Node* cur = head;while(head){cur = head;head = NULL;pre = NULL;while(cur){if(cur->left){if(head == NULL){head = cur->left;}cur->left->next = cur->right;if(pre == NULL){pre = cur->left;}else{pre->next = cur->left;pre = cur->left;}}if(cur->right){if(head == NULL){head = cur->right;}if(pre == NULL){pre = cur->right;}else{pre->next = cur->right;pre = cur->right;}}cur = cur->next;}}return root; }}
};
转载于:https://www.cnblogs.com/zhanzq/p/10830056.html
leetcode 117. 填充每个节点的下一个右侧节点指针 II(Populating Next Right Pointers in Each Node II)...相关推荐
- 2.<tag-二叉树和层序遍历相关题>-lt.116. 填充每个节点的下一个右侧节点指针 + lt.117. 填充每个节点的下一个右侧节点指针 II 1
lt.116. 填充每个节点的下一个右侧节点指针 [案例需求] [思路分析一, 迭代法] [代码实现] /* // Definition for a Node. class Node {public ...
- 力扣116. 填充每个节点的下一个右侧节点指针(C++,附思路)
题目链接在这里: 116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/popu ...
- 二叉树:填充每个节点的下一个右侧节点指针(java)
leetcode116:填充每个节点的下一个右侧节点指针 leetcode原题链接: 题目描述 递归解法一 递归方法二(效率更高) 二叉树专题 leetcode原题链接: 116题:填充每个节点的下一 ...
- leetcode116. 填充每个节点的下一个右侧节点指针
116. 填充每个节点的下一个右侧节点指针 难度中等128 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node {int val;Node ...
- 116. 填充每个节点的下一个右侧节点指针
2020-05-28 1.题目描述 填充每个节点的下一个右侧节点指针 2.题解 层次遍历即可 3.代码 /* // Definition for a Node. class Node { public ...
- 力扣 填充每个节点的下一个右侧节点指针
填充每个节点的下一个右侧节点指针 题目描述 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left ...
- [leetcode-117]填充每个节点的下一个右侧节点指针 II
(1 AC) 填充每个节点的下一个右侧节点指针 I是完美二叉树.这个是任意二叉树 给定一个二叉树 struct Node {int val;Node *left;Node *right;Node *n ...
- LeetCode 117. 填充每个节点的下一个右侧节点指针 II(递归循环)
文章目录 1. 题目 2. 解题 2.1 递归 2.2 queue循环 2.3 利用next循环 1. 题目 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则 ...
- 49. Leetcode 117. 填充每个节点的下一个右侧节点指针 II (二叉树-二叉树遍历)
给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不 ...
- [leetcode] 117 填充每个节点的下一个右侧节点指针
给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left; Node *right; ...
最新文章
- python从右向左第三个_Python字符串操作,通过查找右括号到左括号来删除内容
- 文件编码方式批量转换工具
- Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
- 展望2018:人工智能为媒体服务赋能
- oracle vertica性能对比,测试Vertica性能
- 在.NET Core微服务中使用HostBuilder和Generic Host
- sap crm button_正值SAP中国成立25周年之际,江苏金来奇智能科技SAPB1项目正式启动...
- 学习《HTML+CSS基础课程》里的权值
- c# 从一组数中随机抽取一定个数_C#产生指定范围随机数的几种方法-亮术网
- SBUS协议转换芯片,SBUS转UART,sbus转rs232,sbus解码IC,zr003
- php ext_skel,用ext_skel为php开发扩展|待更
- 第3-2课:用三个水桶等分 8 升水的问题
- 服务器gpu芯片排行,GPU云服务器排行榜
- Android主界面退出再次进入略过欢迎面
- 用excel做logistic回归分析_怎样用SPSS做二项Logistic回归分析?结果如何解释?
- Java的开发环境、测试环境、生产环境、UAT环境、仿真环境
- 基于One—stage的目标检测算法综述
- 心血来潮,开通了博客
- 《嵌入式linux内存使用与性能优化》读书笔记
- IndexError: The shape of the mask [32, 8732] at index 0does not match the shape of the indexed tenso
热门文章
- MySQL Installer 8.0.21安装教程图文详解 转载
- 【java笔记】大数操作(BigIntegerBigDecimal)
- leetcode 并查集 547.省份数量/200岛屿数量
- LeetCode 718最长重复子数组
- akamai:与看视频广告等待相比,用户更不能忍受缓冲等待
- Tomcat假死的原因及解决方案
- 轻量级服务器与云服务器的区别
- android studio第三方调试,Android Studio完美调试
- c语言open不同的编码格式,C语言中open与fopen的区别
- maya拓扑插件_3D角色模型,Maya、Zbrush人头建模