Beispiel #1
0
        public void ReverseBetween_mid_and_last()
        {
            // Arrange
            ReverseLinkedList2 check = new ReverseLinkedList2();
            ListNode           head  = SetupLinkedList();

            // Act
            head = check.ReverseBetween(head, 5, listSize);

            // Assert
            ListNode node = head;

            Assert.AreEqual(1, node.val);
            node = node.next;
            Assert.AreEqual(2, node.val);
            node = node.next;
            Assert.AreEqual(3, node.val);
            node = node.next;
            Assert.AreEqual(4, node.val);
            node = node.next;
            Assert.AreEqual(8, node.val);
            node = node.next;
            Assert.AreEqual(7, node.val);
            node = node.next;
            Assert.AreEqual(6, node.val);
            node = node.next;
            Assert.AreEqual(5, node.val);

            Assert.AreEqual(null, node.next);
        }
Beispiel #2
0
        public void ReverseBetween_Test1()
        {
            // notation: to solve ReverseBetween(head, 3, 6)
            // [1] -> [2] -> [a] -> [b] -> [c] -> [d] -> [7] -> [8]
            //                3      4      5      6
            // [1] -> [2] -> [d] -> [c] -> [b] -> [a] -> [7] -> [8]
            //                6      5      4      3

            // Arrange
            ReverseLinkedList2 check = new ReverseLinkedList2();
            ListNode           head  = SetupLinkedList();

            // Act
            head = check.ReverseBetween(head, 3, 6);

            // Assert
            ListNode node = head;

            Assert.AreEqual(1, node.val);
            node = node.next;
            Assert.AreEqual(2, node.val);
            node = node.next;
            Assert.AreEqual(6, node.val);
            node = node.next;
            Assert.AreEqual(5, node.val);
            node = node.next;
            Assert.AreEqual(4, node.val);
            node = node.next;
            Assert.AreEqual(3, node.val);
            node = node.next;
            Assert.AreEqual(7, node.val);
            node = node.next;
            Assert.AreEqual(8, node.val);

            Assert.AreEqual(null, node.next);
        }