题目链接
填充每个节点的下一个右侧节点指针
题目描述
注意点
- 给定一个 完美二叉树
解答思路
- 广度优先遍历一层层的遍历二叉树,将每一层节点的next指针都指向右侧节点
代码
class Solution {
    public Node connect(Node root) {
        if (root == null) {
            return null;
        }
        Deque<Node> deque = new ArrayDeque<>();
        deque.addLast(root);
        while (!deque.isEmpty()) {
            int n = deque.size();
            Node currNode = new Node();
            for (int i = 0; i < n; i++) {
                Node nextNode = deque.removeFirst();
                currNode.next = nextNode;
                if (nextNode.left != null) {
                    deque.addLast(nextNode.left);
                }
                if (nextNode.right != null) {
                    deque.addLast(nextNode.right);
                }
                currNode = nextNode;
            }
        }
        return root;
    }
}
关键点
- 广度优先遍历的思想
- 注意每层第一个节点和最后一个节点的判断,防止空指针异常





















