Example #1
0
        public void Merge_LinkedLists_With_The_Same_Value()
        {
            var first = new Node <int>(1)
            {
                Next = new Node <int>(2)
                {
                    Next = new Node <int>(3)
                    {
                        Next = new Node <int>(4)
                    }
                }
            };

            var second = new Node <int>(1)
            {
                Next = new Node <int>(2)
                {
                    Next = new Node <int>(3)
                    {
                        Next = new Node <int>(4)
                    }
                }
            };

            var merged = new MergeTwoLinkedLists().FirstTry(first, second);

            Assert.Equal(1, merged.Value);
            Assert.Equal(2, merged.Next.Value);
            Assert.Equal(3, merged.Next.Next.Value);
            Assert.Equal(4, merged.Next.Next.Next.Value);
            Assert.Null(merged.Next.Next.Next.Next);
        }
Example #2
0
        public void Merge_Simple_LinkedLists()
        {
            var first = new Node <int>(2)
            {
                Next = new Node <int>(4)
                {
                    Next = new Node <int>(5)
                    {
                        Next = new Node <int>(7)
                    }
                }
            };

            var second = new Node <int>(1)
            {
                Next = new Node <int>(3)
                {
                    Next = new Node <int>(5)
                    {
                        Next = new Node <int>(6)
                    }
                }
            };

            var merged = new MergeTwoLinkedLists().FirstTry(first, second);

            Assert.Equal(1, merged.Value);
            Assert.Equal(2, merged.Next.Value);
            Assert.Equal(3, merged.Next.Next.Value);
            Assert.Equal(4, merged.Next.Next.Next.Value);
            Assert.Equal(5, merged.Next.Next.Next.Next.Value);
            Assert.Equal(6, merged.Next.Next.Next.Next.Next.Value);
            Assert.Equal(7, merged.Next.Next.Next.Next.Next.Next.Value);
            Assert.Null(merged.Next.Next.Next.Next.Next.Next.Next);
        }
Example #3
0
        public void Merge_LinkedLists_With_Second_Smaller_Than_First_In_Size()
        {
            var first = new Node <int>(2)
            {
                Next = new Node <int>(4)
                {
                    Next = new Node <int>(5)
                    {
                        Next = new Node <int>(6)
                    }
                }
            };

            var second = new Node <int>(1)
            {
                Next = new Node <int>(3)
                {
                    Next = new Node <int>(5)
                }
            };

            var merged = new MergeTwoLinkedLists().FirstTry(first, second);

            Assert.Equal(1, merged.Value);
            Assert.Equal(2, merged.Next.Value);
            Assert.Equal(3, merged.Next.Next.Value);
            Assert.Equal(4, merged.Next.Next.Next.Value);
            Assert.Equal(5, merged.Next.Next.Next.Next.Value);
            Assert.Equal(6, merged.Next.Next.Next.Next.Next.Value);
            Assert.Null(merged.Next.Next.Next.Next.Next.Next);
        }
Example #4
0
        public void Second_LinkedList_Is_Null()
        {
            var first = new Node <int>(2)
            {
                Next = new Node <int>(4)
                {
                    Next = new Node <int>(5)
                    {
                        Next = new Node <int>(7)
                    }
                }
            };

            var merged = new MergeTwoLinkedLists().FirstTry(first, null);

            Assert.Equal(2, merged.Value);
            Assert.Equal(4, merged.Next.Value);
            Assert.Equal(5, merged.Next.Next.Value);
            Assert.Equal(7, merged.Next.Next.Next.Value);
            Assert.Null(merged.Next.Next.Next.Next);
        }
Example #5
0
        public void First_LinkedList_Is_Null()
        {
            var second = new Node <int>(1)
            {
                Next = new Node <int>(3)
                {
                    Next = new Node <int>(5)
                    {
                        Next = new Node <int>(6)
                    }
                }
            };

            var merged = new MergeTwoLinkedLists().FirstTry(null, second);

            Assert.Equal(1, merged.Value);
            Assert.Equal(3, merged.Next.Value);
            Assert.Equal(5, merged.Next.Next.Value);
            Assert.Equal(6, merged.Next.Next.Next.Value);
            Assert.Null(merged.Next.Next.Next.Next);
        }