力扣面试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;
    }
}
相关推荐
韭菜炒大葱14 分钟前
事件捕获、事件冒泡、事件源对象、事件委托
javascript·面试
walking95719 分钟前
Linux-从0开始-20260408
linux·前端·面试
有意义24 分钟前
滴滴一面复盘:从CSS布局到TS核心思想
前端·面试
穿条秋裤到处跑37 分钟前
每日一道leetcode(2026.04.07):模拟行走机器人 II
leetcode·机器人
sheeta199840 分钟前
LeetCode 每日一题笔记 日期:2026.04.07 题目:2069.模拟行走机器人二
笔记·leetcode·机器人
im_AMBER41 分钟前
Leetcode 153 课程表 | 腐烂的橘子
开发语言·算法·leetcode·深度优先·图搜索
田梓燊44 分钟前
leetcode 73
算法·leetcode·职场和发展
南风知我意9571 小时前
【重构思维】用位运算做权限管理
前端·面试·职场和发展·性能优化·重构
黄昏回响1 小时前
计算机系统基础知识(十四):软件篇之计算机网络详解
计算机网络·程序人生·面试·职场和发展·改行学it
6Hzlia1 小时前
【Hot 100 刷题计划】 LeetCode 54. 螺旋矩阵 | C++ 模拟法题解
c++·leetcode·矩阵