题目链接
填充每个节点的下一个右侧节点指针
题目描述
注意点
- 给定一个 完美二叉树
解答思路
- 广度优先遍历一层层的遍历二叉树,将每一层节点的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;}
}
关键点
- 广度优先遍历的思想
- 注意每层第一个节点和最后一个节点的判断,防止空指针异常