方法一:层序遍历

解题思路:

和第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++实现相关推荐

  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. C#中TextBox只能输入数字的代码
  2. [跟我学中小企业架构部署]之三:数据库多实例部署
  3. linux shell awk 中括号 方括号 分割 []
  4. 047_输出一下byte的所有值
  5. 多VLAN环境下DHCP服务的实现
  6. vivox7刷linux系统,Vivo 找来宋仲基帮你送 X7
  7. 【入门2】分支结构 (今天刷洛谷了嘛)
  8. 通过深度学习检测疟疾
  9. Deformable ConvNets自己的理解
  10. 在MyEclipse显示struts2源码和doc文档及自动完成功能
  11. 3.30作业(采购管理+信息管理)
  12. atitit.浏览器web gui操作类库 和 操作chrome浏览器的类库使用总结
  13. 使用treeNMS管理及监控Redis
  14. 完整的连接器设计手册_广西直销施耐德漏电断路器选型手册
  15. php解析乱码字符串,php中文字符串截取方法防止乱码解析
  16. arm 嵌入式系统复习大纲
  17. (十四)ATP应用测试平台——使用docker-compose一键式安装ATP应用测试平台的依赖服务
  18. cta 音频测试_CTA入网认证一般测试哪些项目流程
  19. 【编程开发】之微信登录
  20. 封装Vue组件的原则及技巧

热门文章

  1. 计算机电源原如何确定正常,打开计算机电源后,显示屏不会点亮. 显示器没有坏....
  2. 下qemu模拟arm9_QEMU搭建树莓派环境
  3. java冒泡排序,选择排序,插入排序,希尔排序
  4. 第二百九十、一、二天 how can I 坚持
  5. 以太网数据包、IP包、TCP/UDP 包的结构(转)
  6. AsyncTask使用方式一
  7. Device Tree(二):基本概念
  8. FCC有意支持Sprint与T-Mobile合并?
  9. UWP 推荐 - 限时免费的RSS阅读器《RSS 追踪》登录 Windows 10
  10. Linux环境搭建 | 手把手教你配置Linux虚拟机