예제 #1
0
        public void Swap2ElementsLI()
        {
            // arrange
            var head = new ListNode(1)
            {
                Next = new ListNode(2)
            };
            var expectedHead = new ListNode(2)
            {
                Next = new ListNode(1)
            };

            // act
            ListNode newHead = SwapNodesInPairs.SwapPairs(head);

            // assert
            ListNode expectedNode = expectedHead, foundNode = newHead;

            while (expectedNode != null && foundNode != null)
            {
                Assert.AreEqual(expectedNode.Val, foundNode.Val);

                expectedNode = expectedNode.Next;
                foundNode    = foundNode.Next;
            }
            Assert.IsNull(expectedNode); // both of them should be null
            Assert.IsNull(foundNode);
        }
예제 #2
0
        public void SwapNodesInPairsTestCase4()
        {
            var list   = CommonHelpers.GetLinkedListFromArray(new[] { 1, 2, 3 });
            var result = SwapNodesInPairs.SwapPairs(list).ValuesToFlatList();

            result.SequenceEqual(new[] { 2, 1, 3 }).Should().BeTrue();
        }
예제 #3
0
        public void Given_list_node_When_swap_Then_return()
        {
            ListNode node = new ListNode(1)
            {
                next = new ListNode(2)
                {
                    next = new ListNode(3)
                    {
                        next = new ListNode(4)
                    }
                }
            };

            var result = SwapNodesInPairs.SwapPairs(node);

            Assert.AreEqual(2, result.val);
            Assert.AreEqual(1, result.next.val);
            Assert.AreEqual(4, result.next.next.val);
            Assert.AreEqual(3, result.next.next.next.val);
        }
예제 #4
0
        public void SwapNodesInPairsTestCase2()
        {
            var result = SwapNodesInPairs.SwapPairs(null);

            result.Should().BeNull();
        }