Exemple #1
0
        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);
        }
Exemple #2
0
 public LeetCode116Node(int _val, LeetCode116Node _left, LeetCode116Node _right, LeetCode116Node _next)
 {
     val   = _val;
     left  = _left;
     right = _right;
     next  = _next;
 }