117.填充同一层的兄弟节点II
给定一个二叉树
struct TreeLinkNode {TreeLinkNode *left;TreeLinkNode *right;TreeLinkNode *next; }
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL
。
初始状态下,所有 next 指针都被设置为 NULL
。
说明:
- 你只能使用额外常数空间。
- 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。
示例:
给定二叉树,
1/ \2 3/ \ \ 4 5 7
调用你的函数后,该二叉树变为:
1 -> NULL/ \2 -> 3 -> NULL/ \ \ 4-> 5 -> 7 -> NULL
/**
* Definition for binary tree with next pointer.
* struct TreeLinkNode {
* int val;
* TreeLinkNode *left, *right, *next;
* TreeLinkNode(int x) : val(x), left(NULL), right(NULL), next(NULL) {}
* };
*/
class Solution {
public:
void connect(TreeLinkNode *root) {
if (!root) return;
TreeLinkNode *p = root->next;
while (p) {
if (p->left) {
p = p->left;
break;
}
if (p->right) {
p = p->right;
break;
}
p = p->next;
}
if (root->right) root->right->next = p;
if (root->left) root->left->next = root->right ? root->right : p;
connect(root->right);
connect(root->left);
}
};
117.填充同一层的兄弟节点II相关推荐
- 【每日一算法】填充同一层的兄弟节点
微信改版,加星标不迷路! 每日一算法-填充同一层的兄弟节点 给定一个二叉树 struct TreeLinkNode {TreeLinkNode *left;TreeLinkNode *right;Tr ...
- 116. 填充同一层的兄弟节点
116. 填充同一层的兄弟节点 给定一个二叉树 struct TreeLinkNode { TreeLinkNode *left; TreeLinkNode *right; TreeLinkNode ...
- 2.<tag-二叉树和层序遍历相关题>-lt.116. 填充每个节点的下一个右侧节点指针 + lt.117. 填充每个节点的下一个右侧节点指针 II 1
lt.116. 填充每个节点的下一个右侧节点指针 [案例需求] [思路分析一, 迭代法] [代码实现] /* // Definition for a Node. class Node {public ...
- LeetCode 117. 填充每个节点的下一个右侧节点指针 II(递归循环)
文章目录 1. 题目 2. 解题 2.1 递归 2.2 queue循环 2.3 利用next循环 1. 题目 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则 ...
- xpath 获取当前节点的父节点,兄弟节点的方法
2019独角兽企业重金招聘Python工程师标准>>> xpath_input_exp_mark = '//label[contains(text(), "文本内容&quo ...
- CSS实现某元素hover时 所有兄弟节点样式改变
2019独角兽企业重金招聘Python工程师标准>>> css 提供的兄弟节点选择器有两种 第一种:+ 相邻兄弟选择器( li + li )只能选择与自己紧紧相连的身后的一个兄弟, ...
- JQUERY的父,子,兄弟节点查找方法
jQuery.parent(expr) 找父亲节点,可以传入expr进行过滤,比如$("span").parent()或者$("span").parent(& ...
- 相对定位android,appium相对位置定位元素----父节点/兄弟节点定位
appium相对位置定位元素----父节点/兄弟节点定位 发布时间:2020-06-30 05:51:41 来源:51CTO 阅读:5620 作者:niedongri 讲一下定位手机app上元素时定位 ...
- 总结获取原生JS(javascript)的父节点、子节点、兄弟节点
关于原生JS获取节点,一直是个头疼的问题,而且调用方法的名字又贼长了,所以我选择用JQ,好像跑题了-- 话不多说看代码 获取父节点 及 父节点下所有子节点(兄弟节点) <ul><li ...
- js学习笔记15----子节点和兄弟节点的操作
1.元素.firstChild : 只读属性,第一个子节点 标准下:会包含文本类型的子节点. 非标准下:只包含元素类型子节点. 元素.firstElementChild : 只读属性,第一个元素子节点 ...
最新文章
- DeFi 史上最大盗窃案:一个漏洞盗走价值 6 亿美元资产?现已归还近一半
- Squid配置二级代理(父代理)
- 关于 xml 库运行时的segmentation fault 问题
- mysql表的类型_浅谈MySQL表类型
- 中英对照 关于计算机的科技英语,《计算机专业英语》(中英文对照).pdf
- 【专访】首届腾讯社交广告“高校算法大赛”落幕 冠亚季军团队参赛心得精彩分享
- C++设计模式-Mediator中介者模式
- Python中的多线程与锁
- 数据库连接池——基本原理
- 地址规范化--城市三级联动(layui) (B)
- 什么是飞天?全球级大数据计算平台,自主研发!
- L2CAP的基本模式(basic mode)数据格式
- 大数据:阿里数据仓库建模及管理体系OneData什么是阿里onedata
- Avfoundation 相机指定裁剪区域
- Excel功能及实现
- 优漫动游平面设计的形式美
- 1497_费曼技巧之他人观
- 电脑服务器修改穿越火线不卡,windows10玩穿越火线画面不流畅怎么办
- VENC 通道属性配置参数理解
- 小程序实习生实现手机机型预约
热门文章
- IE7的CSS兼容性
- 使用ASP.NET Atlas ItemView控件显示集合中的单个数据
- sharding技术
- 浏览器加载、渲染过程总结
- Android官方开发文档Training系列课程中文版:线程执行操作之定义线程执行代码...
- Logback 深入分析
- 在 Visual Studio 2010 中配置SharpPcap
- html 强制占据一行,html – 如何强制内联div保持在同一行?
- mysql5.7 systemctl启动_CentOS 7上配置MySQL5.7开机自启动方法
- android x86显卡驱动,全系列显卡精简版纯驱动(Windows_6.x_VGA_Drivers_lite_x86x64)(2016.09.12)...