每个叶子节点(nil)是黑色。_填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:
struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。
初始状态下,所有 next 指针都被设置为 NULL。
提示:
- 你只能使用常量级额外空间。
- 使用递归解题也符合要求,本题中递归程序占用的栈空间不算做额外的空间复杂度。
/*
// 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 root;}LinkedList<Node> queue=new LinkedList<>();queue.addLast(root);while(!queue.isEmpty()){int len=queue.size();for(int i=0;i<len;i++){Node t=queue.removeFirst();if(t.left!=null){queue.addLast(t.left);}if(t.right!=null){queue.addLast(t.right);}if(i+1<len){Node p=queue.getFirst();t.next=p;}}}return root;}
}
解析:层序遍历,每一层把next弄好,最后一个元素的next=null;
每个叶子节点(nil)是黑色。_填充每个节点的下一个右侧节点指针相关推荐
- LeetCode 116. 填充每个节点的下一个右侧节点指针
https://leetcode-cn.com/problems/populating-next-right-pointers-in-each-node/ 难度:中等 给定一个完美二叉树,其所有叶 ...
- 49. Leetcode 117. 填充每个节点的下一个右侧节点指针 II (二叉树-二叉树遍历)
给定一个二叉树struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不 ...
- 【数据结构与算法】之深入解析“填充每个节点的下一个右侧节点指针”的求解思路与算法示例
一.题目要求 给定一个完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点. 二叉树定义如下: struct Node {int val;Node *left;Node *right;No ...
- leetcode--116. 填充每个节点的下一个右侧节点指针
给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node {int val;Node *left;Node *right;Node *next; ...
- [leetcode] 117 填充每个节点的下一个右侧节点指针
给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node { int val; Node *left; Node *right; ...
- leetcode116. 填充每个节点的下一个右侧节点指针
116. 填充每个节点的下一个右侧节点指针 难度中等128 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node {int val;Node ...
- LeetCode 116. 填充每个节点的下一个右侧节点指针(递归循环)
文章目录 1. 题目 2. 解题 2.1 递归 2.2 循环 2.3 O(1)空间复杂度 1. 题目 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: stru ...
- 力扣116. 填充每个节点的下一个右侧节点指针(C++,附思路)
题目链接在这里: 116. 填充每个节点的下一个右侧节点指针 - 力扣(LeetCode) (leetcode-cn.com)https://leetcode-cn.com/problems/popu ...
- LeetCode-116. 填充每个节点的下一个右侧节点指针
题目描述: 给定一个 完美二叉树 ,其所有叶子节点都在同一层,每个父节点都有两个子节点.二叉树定义如下: struct Node {int val;Node *left;Node *right;Nod ...
最新文章
- Servlet 获取IllegelStateException
- 在Ubuntu中用anaconda快速安装opencv3
- BroadCastReceiver简介
- 系统网卡性能,丢包率与下载上传,ulimit设置
- (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
- 一个学习的好去处!!
- 06_排序_希尔排序
- java永生代和新生代_Java:永生的对象和对象的复活
- javascript的offset、client、scroll使用方法
- 35. 源码与 Tarball
- mysql列行条件,返回满足mysql表中列的多个条件的行
- The Podfile (Podfile 的写法和规范)
- java 进度条插件_java进度条控件如何使用?
- ubuntu安装配置搜狗拼音输入法
- vscode连接远程服务器报错ln: failed to create hard link ... File exists
- java银行排队系统_java--面向对象(一个简单的银行排队系统)原理版
- 俄勒冈州立大学研发脱口秀机器人,全美巡演数十场获好评
- dpi、dp、sp、px、mm之间的关系
- CMOS与TTL电路的区别
- 关于设备像素比dpr的理解
热门文章
- MagicDraw UML 16.8 安装教程(2)-破解补丁
- centos 宝塔面版 运行 thinkjs
- 解决低版本IE关于html5新特性的兼容性问题html5shiv.js和Respond.js,以及excanvas.js解决低版本IE不支持canvas的问题...
- 开篇~试试word写博客
- codeforces 906C
- Ubuntu下如何修改文件或者文件夹的权限
- 《C程序设计语言》笔记 (三) 控制流
- 面向对象设计思想_重要_2
- 控股天弘基金 阿里无银行之名行银行之实
- Die notwendige Evolution menschlichen Verhalten