填充每个节点的下一个右侧节点指针Ⅱ
算法-填充每个节点的下一个右侧节点指针Ⅱ
背景
-
算法–117.填充每个节点的下一个右侧节点指针Ⅱ
-
博主以代码随想录算法公开课进行学习
题目
-
给定一个二叉树:
1
2
3
4
5
6struct Node {
int val;
Node *left;
Node *right;
Node *next;
}填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点,则将 next 指针设置为
NULL。初始状态下,所有 next 指针都被设置为
NULL。
示例 1:
1 | 输入:root = [1,2,3,4,5,null,7] |
示例 2:
1 | 输入:root = [] |
思路
- 与层序遍历一致
- 使用二叉树层序遍历(BFS),在每一层内部,把前一个节点的 next 指向后一个节点,最后一个节点指向 null。
代码实现
1 | class Solution { |
总结
- 层序遍历 + 同一层内部用 next 指针从左到右串联,最后一个节点指向 null。