Leetcode 117. 填充每个节点的下一个右侧节点指针 II 解题思路及C++实现
方法一:层序遍历
解题思路:
和第116题一模一样,其实,用队列queue更简单一些,不用将顺序倒来倒去。通过使用队列的长度信息queue.size(),可以只需要一个队列就能做到层序遍历。
/*
// 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;//层序遍历stack<Node*> s1;s1.push(root);while(!s1.empty()){stack<Node*> s2;Node* temp1 = NULL;Node* temp2 = NULL;while(!s1.empty()){temp1 = s1.top();s1.pop();temp1->next = temp2;temp2 = temp1;if(temp1->right)s2.push(temp1->right);if(temp1->left)s2.push(temp1->left);}//s2中节点顺序是反过来的while(!s2.empty()){s1.push(s2.top());s2.pop();}}return root;}
};
Leetcode 117. 填充每个节点的下一个右侧节点指针 II 解题思路及C++实现相关推荐
- 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; ...
最新文章
- C#中TextBox只能输入数字的代码
- [跟我学中小企业架构部署]之三:数据库多实例部署
- linux shell awk 中括号 方括号 分割 []
- 047_输出一下byte的所有值
- 多VLAN环境下DHCP服务的实现
- vivox7刷linux系统,Vivo 找来宋仲基帮你送 X7
- 【入门2】分支结构 (今天刷洛谷了嘛)
- 通过深度学习检测疟疾
- Deformable ConvNets自己的理解
- 在MyEclipse显示struts2源码和doc文档及自动完成功能
- 3.30作业(采购管理+信息管理)
- atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
- 使用treeNMS管理及监控Redis
- 完整的连接器设计手册_广西直销施耐德漏电断路器选型手册
- php解析乱码字符串,php中文字符串截取方法防止乱码解析
- arm 嵌入式系统复习大纲
- (十四)ATP应用测试平台——使用docker-compose一键式安装ATP应用测试平台的依赖服务
- cta 音频测试_CTA入网认证一般测试哪些项目流程
- 【编程开发】之微信登录
- 封装Vue组件的原则及技巧
热门文章
- 计算机电源原如何确定正常,打开计算机电源后,显示屏不会点亮. 显示器没有坏....
- 下qemu模拟arm9_QEMU搭建树莓派环境
- java冒泡排序,选择排序,插入排序,希尔排序
- 第二百九十、一、二天 how can I 坚持
- 以太网数据包、IP包、TCP/UDP 包的结构(转)
- AsyncTask使用方式一
- Device Tree(二):基本概念
- FCC有意支持Sprint与T-Mobile合并?
- UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
- Linux环境搭建 | 手把手教你配置Linux虚拟机