力扣面试150 填充每个节点的下一个右侧节点指针 II BFS 逐层构建法

Problem: 117. 填充每个节点的下一个右侧节点指针 II

🍻 BFS 空间优化

👩‍🏫 参考题解

  • ⏰ 时间复杂度: O ( n ) O(n) O(n)
  • 🌎 空间复杂度: O ( 1 ) O(1) O(1)
Java 复制代码
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;
    }
}
相关推荐
ゞ 正在缓冲99%…1 小时前
leetcode1312.让字符串成为回文串的最少插入次数
数据结构·算法·leetcode·动态规划·记忆化搜索
布列瑟农的星空3 小时前
近一年前端招人面试感悟
前端·面试
别学LeetCode3 小时前
#leetcode#
leetcode
2501_938780283 小时前
《Node.js 面试考点精讲:Express 生态与常见问题解决方案》
面试·node.js·express
2501_938790073 小时前
《Node.js 面试避坑:Express 常见问题误区与正确答案解析》
面试·node.js·express
老前端的功夫4 小时前
Web应用的"永生"之术:PWA落地与实践深度指南
前端·面试
Tisfy4 小时前
LeetCode 3289.数字小镇中的捣蛋鬼:哈希表O(n)空间 / 位运算O(1)空间
算法·leetcode·散列表·题解·位运算·哈希表
9号达人5 小时前
认证方案的设计与思考
java·后端·面试
倔强青铜三5 小时前
苦练Python第71天:一行代码就搭出服务器?别眨眼,http.server真有这么爽!
人工智能·python·面试
倔强青铜三5 小时前
苦练Python第70天:征服网络请求!揭开urllib.request的神秘面纱
人工智能·python·面试