马云不懂技术如何做网站,写小说的小网站,信誉好的龙岗网站制作,山东网站建设公司排名给定一个 完美二叉树 #xff0c;其所有叶子节点都在同一层#xff0c;每个父节点都有两个子节点。二叉树定义如下#xff1a;
struct Node {int val;Node *left;Node *right;Node *next;
}
填充它的每个 next 指针#xff0c;让这个指针指向其下一个右侧节点。如果找不到…给定一个 完美二叉树 其所有叶子节点都在同一层每个父节点都有两个子节点。二叉树定义如下
struct Node {int val;Node *left;Node *right;Node *next;
}
填充它的每个 next 指针让这个指针指向其下一个右侧节点。如果找不到下一个右侧节点则将 next 指针设置为 NULL。
初始状态下所有 next 指针都被设置为 NULL。 思路层次遍历的时候使用next节点指向当前节点的下一个节点。
连续从对列中弹出两个节点当前节点的next就是第二个从队列中弹出的元素。
public Node connect(Node root) {QueueNode queuenew LinkedList();if(root!null) queue.add(root);while (!queue.isEmpty()){int sizequeue.size();Node nodequeue.poll();if(node.left!null) queue.add(node.left);if(node.right!null) queue.add(node.right);for(int i1;isize;i){Node nextqueue.poll();if(next.left!null) queue.add(next.left);if(next.right!null) queue.add(next.right);node.nextnext;nodenext;}}return root;}