Problem: 117. 填充每个节点的下一个右侧节点指针 II
🍻 BFS 空间优化
👩🏫 参考题解
- ⏰ 时间复杂度: O ( n ) O(n) O(n)
- 🌎 空间复杂度: O ( 1 ) O(1) O(1)
class Solution {public Node connect(Node root) {if (root == null) {return null;}Node ans = root;Node cur = root;// 上一层链表的头结点while(cur != null){Node head = new Node(-1), tail = head;// 当前层的头尾结点for(Node i = cur; i != null; i = i.next){ // 遍历上一层链表的每个节点的左右孩子if(i.left != null){// 先加左孩子到当前层的链表tail.next = i.left;tail = tail.next;}if(i.right != null){// 再加右孩子到当前层的链表tail.next = i.right;tail = tail.next;}}cur = head.next;// 移动到下一层}return ans;}
}