116. Populating Next Right Pointers in Each Node
Last updated
Last updated
// 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;
}
};/**
* Time complexity :
* Space complexity :
*/
class Solution {
public Node connect(Node root) {
if(root == null) return null;
if(root.left != null) {
root.left.next = root.right;
}
if(root.right != null && root.next != null) {
root.right.next = root.next.left;
}
connect(root.left);
connect(root.right);
return root;
}
}/**
* Time complexity :
* Space complexity :
*/
class Solution {
public Node connect(Node root) {
Node prev = root;
while(prev != null) {
Node curr = prev;
while(curr != null) {
if(curr.left != null) {
curr.left.next = curr.right;
}
if(curr.right != null && curr.next != null) {
curr.right.next = curr.next.left;
}
curr = curr.next;
}
prev = prev.left;
}
return root;
}
}