​原题链接​

不要自卑,去提升实力
互联网行业谁技术牛谁是爹
如果文章可以带给你能量,那是最好的事!请相信自己
加油o~

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

给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下:
struct Node {
int val;
Node *left;
Node *right;
Node *next;
}
填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为 NULL。
初始状态下,所有 next 指针都被设置为 NULL。

示例:


解题思路:

将根节点入队
只要他的左右孩子不为空,则将他的两个孩子入队
同时设置size,监控层序的位置,每到最后位置则将其next指针置为null

代码:

/**
*作者:魏宝航
*2020年11月26日,上午7:47
*/
class Solution {
public Node connect(Node root) {
if(root==null){
return null;
}
Queue<Node> list=new LinkedList<>();
list.add(root);
while(!list.isEmpty()){
int size=list.size();
for(int i=0;i<size;i++){
Node temp=list.poll();
if(i==size-1){
temp.next=null;
}
else{
temp.next=list.peek();
}

if(temp.left!=null){
list.add(temp.left);
}
if(temp.right!=null){
list.add(temp.right);
}

}

}
return root;
}
}

执行结果: