给一个二叉树,每个node有个next指针,让每层node的next指针指向它右边的node,最右边的next指向null。
思路:
BFS
每层的node装入queue, queue中的node指向下一node,每层的最后一个node.next保持null。
public Node connect(Node root) {
if(root == null) return root;
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while(queue.size() > 0) {
int size = queue.size();
for(int i = 0; i < size; i ++) {
Node cur = queue.poll();
if(i < size - 1) cur.next = queue.peek();
if(cur.left != null) queue.offer(cur.left);
if(cur.right != null) queue.offer(cur.right);
}
}
return root;
}