目录

  • 题目描述:
  • 示例:
  • 解法:

题目描述:

给定一个二叉树

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)...相关推荐

  1. 2.<tag-二叉树和层序遍历相关题>-lt.116. 填充每个节点的下一个右侧节点指针 + lt.117. 填充每个节点的下一个右侧节点指针 II 1

    lt.116. 填充每个节点的下一个右侧节点指针 [案例需求] [思路分析一, 迭代法] [代码实现] /* // Definition for a Node. class Node {public ...

  2. 力扣116. 填充每个节点的下一个右侧节点指针(C++,附思路)

    题目链接在这里: 116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/popu ...

  3. 二叉树:填充每个节点的下一个右侧节点指针(java)

    leetcode116:填充每个节点的下一个右侧节点指针 leetcode原题链接: 题目描述 递归解法一 递归方法二(效率更高) 二叉树专题 leetcode原题链接: 116题:填充每个节点的下一 ...

  4. leetcode116. 填充每个节点的下一个右侧节点指针

    116. 填充每个节点的下一个右侧节点指针 难度中等128 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node {int val;Node ...

  5. 116. 填充每个节点的下一个右侧节点指针

    2020-05-28 1.题目描述 填充每个节点的下一个右侧节点指针 2.题解 层次遍历即可 3.代码 /* // Definition for a Node. class Node { public ...

  6. 力扣 填充每个节点的下一个右侧节点指针

    填充每个节点的下一个右侧节点指针 题目描述 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left ...

  7. [leetcode-117]填充每个节点的下一个右侧节点指针 II

    (1 AC) 填充每个节点的下一个右侧节点指针 I是完美二叉树.这个是任意二叉树 给定一个二叉树 struct Node {int val;Node *left;Node *right;Node *n ...

  8. LeetCode 117. 填充每个节点的下一个右侧节点指针 II(递归循环)

    文章目录 1. 题目 2. 解题 2.1 递归 2.2 queue循环 2.3 利用next循环 1. 题目 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则 ...

  9. 49. Leetcode 117. 填充每个节点的下一个右侧节点指针 II (二叉树-二叉树遍历)

    给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不 ...

  10. [leetcode] 117 填充每个节点的下一个右侧节点指针

    给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node {   int val;   Node *left;   Node *right; ...

最新文章

  1. python从右向左第三个_Python字符串操作,通过查找右括号到左括号来删除内容
  2. 文件编码方式批量转换工具
  3. Dubbo环境搭建-管理控制台dubbo-admin实现服务监控
  4. 展望2018:人工智能为媒体服务赋能
  5. oracle vertica性能对比,测试Vertica性能
  6. 在.NET Core微服务中使用HostBuilder和Generic Host
  7. sap crm button_正值SAP中国成立25周年之际,江苏金来奇智能科技SAPB1项目正式启动...
  8. 学习《HTML+CSS基础课程》里的权值
  9. c# 从一组数中随机抽取一定个数_C#产生指定范围随机数的几种方法-亮术网
  10. SBUS协议转换芯片,SBUS转UART,sbus转rs232,sbus解码IC,zr003
  11. php ext_skel,用ext_skel为php开发扩展|待更
  12. 第3-2课:用三个水桶等分 8 升水的问题
  13. 服务器gpu芯片排行,GPU云服务器排行榜
  14. Android主界面退出再次进入略过欢迎面
  15. 用excel做logistic回归分析_怎样用SPSS做二项Logistic回归分析?结果如何解释?
  16. Java的开发环境、测试环境、生产环境、UAT环境、仿真环境
  17. 基于One—stage的目标检测算法综述
  18. 心血来潮,开通了博客
  19. 《嵌入式linux内存使用与性能优化》读书笔记
  20. IndexError: The shape of the mask [32, 8732] at index 0does not match the shape of the indexed tenso

热门文章

  1. MySQL Installer 8.0.21安装教程图文详解 转载
  2. 【java笔记】大数操作(BigIntegerBigDecimal)
  3. leetcode 并查集 547.省份数量/200岛屿数量
  4. LeetCode 718最长重复子数组
  5. akamai:与看视频广告等待相比,用户更不能忍受缓冲等待
  6. Tomcat假死的原因及解决方案
  7. 轻量级服务器与云服务器的区别
  8. android studio第三方调试,Android Studio完美调试
  9. c语言open不同的编码格式,C语言中open与fopen的区别
  10. maya拓扑插件_3D角色模型,Maya、Zbrush人头建模