public static LeetCode116Node Connection(LeetCode116Node root) { if (root == null) { return(root); } var queue = new Queue <LeetCode116Node>(); queue.Enqueue(root); while (queue.Count > 0) { var size = queue.Count; for (var i = 0; i < size; i++) { var tempNode = queue.Dequeue(); if (i < size - 1) { tempNode.next = queue.Peek(); } if (tempNode.left != null) { queue.Enqueue(tempNode.left); } if (tempNode.right != null) { queue.Enqueue(tempNode.right); } } } return(root); }
public LeetCode116Node(int _val, LeetCode116Node _left, LeetCode116Node _right, LeetCode116Node _next) { val = _val; left = _left; right = _right; next = _next; }