(1 AC)

填充每个节点的下一个右侧节点指针 I是完美二叉树。这个是任意二叉树

给定一个二叉树

struct Node {int val;Node *left;Node *right;Node *next;
}

填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL

初始状态下,所有 next 指针都被设置为 NULL

示例:For example,
Given the following binary tree,

         1/  \2    3/ \    \4   5    7

After calling your function, the tree should look like:

         1 -> NULL/  \2 -> 3 -> NULL/ \    \4-> 5 -> 7 -> NULL

关键:层序遍历Java中的队列:Queue<TreeLinkNode> queue = new LinkedList<>();
/*** Definition for binary tree with next pointer.* public class TreeLinkNode {*     int val;*     TreeLinkNode left, right, next;*     TreeLinkNode(int x) { val = x; }* }*/
public class PopulatingNextRightPointersInEachNodeii {public void connect(TreeLinkNode root) {if (root == null) {return;}Queue<TreeLinkNode> queue = new LinkedList<>();queue.add(root);while(queue.size() != 0) {int size = queue.size(); // 当前层节点数TreeLinkNode node1 = queue.poll();if (node1.left != null)queue.add(node1.left);if (node1.right != null)queue.add(node1.right);for (int i=1;i<size;i++) {TreeLinkNode node2 = queue.poll();if (node2.left != null)queue.add(node2.left);if (node2.right != null)queue.add(node2.right);node1.next = node2;node1 = node2;}}}
}

转载于:https://www.cnblogs.com/twoheads/p/10571364.html

[leetcode-117]填充每个节点的下一个右侧节点指针 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. 题目 2. 解题 2.1 递归 2.2 queue循环 2.3 利用next循环 1. 题目 填充它的每个 next 指针,让这个指针指向其下一个右侧节点.如果找不到下一个右侧节点,则 ...

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

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

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

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

最新文章

  1. ICCV2021 | SMCA:即插即用的共同注意力模型,可使DETR收敛加速10倍
  2. 通过电机编码器AB相输出确定电机转向
  3. 图像检索:几类基于内容的图像分类技术
  4. CTF(pwn)堆利用 之 off by one
  5. UIView CALayer
  6. Node.js event loop 和 JS 浏览器环境下的事件循环的区别
  7. 计算机处理器采用多核,电脑的CPU的多核很有用吗?
  8. 《数据结构》C++代码 堆(优先队列)
  9. 作为一个销售人员,要做到这些
  10. ie8 不支持 position:fixed 的简单解决办法
  11. oracle exp空数据表,Oracle11g中Exp空表的问题
  12. 解题报告 一元三次方程求解
  13. Git 使用之鉴权失败
  14. 阿里P7、P8、P9级别需要多少年的工作经验,还是因能力而定?
  15. 分号与逗号的区别及举例_顿号与逗号与分号间的区别是什么?
  16. Orcad allegro 安装补丁
  17. mac iTunes 下载慢,如何加速
  18. php7.0 phalcon_phalcon php7
  19. [前端三剑客之CSS]display:none opacity:0 visibility:hidden三角恋的爱恨情仇
  20. 教你用Ossim平台检测网络的Shellcode攻击

热门文章

  1. 虚拟机VMware的Ubuntu下安装tensorflow详解
  2. linux检测是否安装eclipse,肿么看linux中eclipse是否安装成功
  3. DbNetSpell
  4. java向上向下取整与四舍五入
  5. Oracle数据库使用Navicat premium创建用户时遇到的坑
  6. git统计每个人的代码行数_程序员实用工具,推荐一款代码统计神器GitStats
  7. 2020-11-25 阿里云CentOS linux源配置脚本 https://mirrors.aliyun.com/repo/
  8. 关于GDAL计算图像坐标的几个问题
  9. 远程服务器传数据库,怎样把本机的mysql数据库上传到远程主机上
  10. GeoTools——读取shapefile数据