120 填充每个节点的下一个右侧节点指针II

发布时间:2024年01月19日

问题描述:给的那个一个二叉树struct Node{int val;Node*left;Node*right;Node*next;}填充他的每个next种子很,让这个指针主席昂其下一个右侧几点。如果找不到下一个右侧节点(同一层中的右侧节点),则将next指针设置为null。初始状态下,所有next指针都被设置为NULL。

BFS求解:对于这种同一层的这种问题,使用BFS求解具有较好的效果。

public Node fillRight(Node root)
{
Queue<Node>queue=new LinkedList<>();
queue.add(root);
while(!queue.isEmpty())
{
int queueSize=queue.size();
Node theLastNode=queue.poll();
if(theLastNode.left!=null){queue.add(theLastNode.left);}
if(theLastNode.right!=null){queue.add(theLastNode.right);}
for(int i=1;i<queueSize;i++)
{
Node theNextNode=queue.poll();
if(theNextNode.left!=null){queue.add(theNextNode.left);}
if(theNextNode.right!=null){queue.add(theNextNode.right);}
theLastNode.next=theNextNode;
theLastNode=theNextNode;
}
theLastNode.next=null;
}
???????return root;
}

文章来源:https://blog.csdn.net/qq_52299902/article/details/135700856
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。