算中序吧
/*
// Definition for a Node.
class Node {
public int val;
public Node left;
public Node right;
public Node next;
public Node() {}
public Node(int _val) {
val = _val;
}
public Node(int _val, Node _left, Node _right, Node _next) {
val = _val;
left = _left;
right = _right;
next = _next;
}
};
*/
class Solution {
public Node connect(Node root) {
if (root == null){
return root;
}
//逐层进队
Queue<Node> level = new LinkedList<Node>();//这里括号别漏了
level.add(root);//此时第一层进来
while(!level.isEmpty()){
int num = level.size();//这里如果不这样 后面使用level.size()是变化的 就会出错
for(int i = 0; i < num; ++i){
Node node = level.poll();
if (i < num-1){
node.next = level.peek();
}
//一种类似中序的
if (node.left != null){
level.add(node.left);
}
if (node.right != null){
level.add(node.right);
}
}
}
return root;
}
}