package Tree;
import java.util.LinkedList;
import java.util.Queue;
public class Connect_117 {
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;
}
}
public Node connect(Node root) {
if(root==null) {
return root;
}
// 每一行的節點用隊列存儲起來
Queue<Node> queue = new LinkedList<>();
queue.offer(root);
while (!queue.isEmpty()) {
Node pre = null;
int size=queue.size();
for (int i = 0; i < size; i++) {
// 每一行串起來
Node cur = queue.poll();
if (i > 0) {
pre.next = cur;
}
pre = cur;
// 下一行存入隊列
if (cur.left != null) {
queue.offer(cur.left);
}
if (cur.right != null) {
queue.offer(cur.right);
}
}
}
return root;
}
}
117. Populating Next Right Pointers in Each Node II(隊列、二叉樹)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.