public void LinkedListShouldReverse_WithRecursion() { var originLists = ListNodeHelpers.CreateLinkedList(new int[5] { 1, 2, 3, 4, 5 }); var result = ListNodeHelpers.CreateLinkedList(new int[5] { 5, 4, 3, 2, 1 }); ListNodeHelpers.ListToString(ReverseListWithRecursion(originLists)).ShouldBe(ListNodeHelpers.ListToString(result)); }
public void LinkedListSwapNodeInPairs_WithNormalCase() { var originLists = ListNodeHelpers.CreateLinkedList(new int[4] { 1, 2, 3, 4 }); var result = ListNodeHelpers.CreateLinkedList(new int[4] { 2, 1, 4, 3 }); ListNodeHelpers.ListToString(SwapNodeInPairsWithRecursion(originLists)).ShouldBe(ListNodeHelpers.ListToString(result)); }
public void LinkedListCycle_HasCycle() { var list = ListNodeHelpers.CreateCycleLinkedList(new int[4] { 3, 2, 0, -4 }, 1); HasCycle(list).ShouldBe(true); var list_1 = ListNodeHelpers.CreateCycleLinkedList(new int[2] { 1, 2 }, 0); HasCycle(list_1).ShouldBe(true); var list_2 = ListNodeHelpers.CreateCycleLinkedList(new int[1] { 1 }, -1); HasCycle(list_2).ShouldBe(false); }
public void LinkedListCycle_HasCycle() { var list = ListNodeHelpers.CreateCycleLinkedList(new int[4] { 3, 2, 0, -4 }, 1); DetectCycle(list).val.ShouldBe(2); var list_1 = ListNodeHelpers.CreateCycleLinkedList(new int[2] { 1, 2 }, 0); DetectCycle(list_1).val.ShouldBe(1); var list_2 = ListNodeHelpers.CreateCycleLinkedList(new int[1] { 1 }, -1); DetectCycle(list_2).ShouldBe(null); }