这道题目不知道重点在考察什么。
填充所有节点的next指针,指向它右兄弟节点。如果没有右兄弟节点,则应该将next指针设置为NULL。 初始时,所有的next指针都为NULL 注意: 你只能使用常量级的额外内存空间 可以假设给出的二叉树是一个完美的二叉树(即,所有叶子节点都位于同一层,而且每个父节点都有两个孩子节点)。 例如:给出如下的完美二叉树
采用改进后的层次遍历写法,很快解决了这道题目。
/**
* Definition for binary tree with next pointer.
* public class TreeLinkNode {
* int val;
* TreeLinkNode left, right, next;
* TreeLinkNode(int x) { val = x; }
* }
*/
import java.util.Deque;
import java.util.LinkedList;
public class Solution {
public void connect(TreeLinkNode root) {
//不是很清楚这道题目考察的点是什么,为什么要特地强调常量级别额外的内存空间
if(root == null)return;
if(root.left == null && root.right ==null)return;
Deque<TreeLinkNode> queue = new LinkedList<>();
queue.offerLast(root);
while(!queue.isEmpty()){
int size = queue.size();
for(int i=0; i< size; i++){//改进的层层遍历写法的关键点
TreeLinkNode head = queue.pollFirst();
if(head.left


京公网安备 11010502036488号